PDF rausgenommen

This commit is contained in:
aschwarz
2023-01-23 11:03:31 +01:00
parent 82d562a322
commit a6523903eb
28078 changed files with 4247552 additions and 2 deletions

View File

@ -0,0 +1,39 @@
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\Monolog\Handler;
use Monolog\Handler\AbstractProcessingHandler;
use Piwik\Common;
use Piwik\Db;
/**
* Writes log to database.
*/
class DatabaseHandler extends AbstractProcessingHandler
{
protected function write(array $record)
{
$sql = sprintf(
'INSERT INTO %s (tag, timestamp, level, message) VALUES (?, ?, ?, ?)',
Common::prefixTable('logger_message')
);
$queryLog = Db::isQueryLogEnabled();
Db::enableQueryLog(false);
Db::query($sql, array(
$record['extra']['class'],
$record['datetime']->format('Y-m-d H:i:s'),
$record['level_name'],
trim($record['formatted'])
));
Db::enableQueryLog($queryLog);
}
}

View File

@ -0,0 +1,24 @@
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\Monolog\Handler;
use Monolog\Handler\AbstractProcessingHandler;
/**
* Simply echos all messages.
*/
class EchoHandler extends AbstractProcessingHandler
{
protected function write(array $record)
{
$message = $record['level_name'] . ': ' . $record['message'];
echo $message . "\n";
}
}

View File

@ -0,0 +1,49 @@
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\Monolog\Handler;
use Monolog\Handler\AbstractHandler;
use Monolog\Logger;
/**
* Handler used to detect whether a certain level of log has been emitted.
*/
class FailureLogMessageDetector extends AbstractHandler
{
/**
* @var boolean
*/
private $hasEncounteredImportantLog = false;
public function __construct($level = Logger::WARNING)
{
parent::__construct($level, $bubble = true);
}
public function handle(array $record)
{
$this->hasEncounteredImportantLog = true;
}
/**
* @return bool
*/
public function hasEncounteredImportantLog()
{
return $this->hasEncounteredImportantLog;
}
/**
* for tests
*/
public function reset()
{
$this->hasEncounteredImportantLog = false;
}
}

View File

@ -0,0 +1,34 @@
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\Monolog\Handler;
use Monolog\Handler\StreamHandler;
use Piwik\Exception\MissingFilePermissionException;
use Piwik\Filechecks;
/**
* Writes log to file.
*
* Extends StreamHandler to be able to have a custom exception message.
*/
class FileHandler extends StreamHandler
{
protected function write(array $record)
{
try {
parent::write($record);
} catch (\UnexpectedValueException $e) {
$ex = new MissingFilePermissionException(
Filechecks::getErrorMessageMissingPermissions($this->url)
);
$ex->setIsHtmlMessage();
throw $ex;
}
}
}

View File

@ -0,0 +1,34 @@
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\Monolog\Handler;
use Monolog\Handler\AbstractHandler;
class LogCaptureHandler extends AbstractHandler
{
/**
* @var array
*/
private $allLogs;
public function handle(array $record)
{
$this->allLogs[] = $record;
}
/**
* Returns all records. The records should be processed, so one could just use $record['message'].
*
* @return array[]
*/
public function getAllRecords()
{
return $this->allLogs;
}
}

View File

@ -0,0 +1,61 @@
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\Monolog\Handler;
use Monolog\Handler\AbstractProcessingHandler;
use Monolog\Logger;
use Piwik\Common;
use Piwik\Notification;
use Piwik\Notification\Manager;
use Zend_Session_Exception;
/**
* Writes log messages into HTML notification box.
*/
class WebNotificationHandler extends AbstractProcessingHandler
{
public function isHandling(array $record)
{
if (!empty($record['context']['ignoreInScreenWriter'])) {
return false;
}
return parent::isHandling($record);
}
protected function write(array $record)
{
switch ($record['level']) {
case Logger::EMERGENCY:
case Logger::ALERT:
case Logger::CRITICAL:
case Logger::ERROR:
$context = Notification::CONTEXT_ERROR;
break;
case Logger::WARNING:
$context = Notification::CONTEXT_WARNING;
break;
default:
$context = Notification::CONTEXT_INFO;
break;
}
$message = $record['level_name'] . ': ' . htmlentities($record['message'], ENT_COMPAT | ENT_HTML401, 'UTF-8');
$notification = new Notification($message);
$notification->context = $context;
$notification->flags = 0;
try {
Manager::notify(Common::getRandomString(), $notification);
} catch (Zend_Session_Exception $e) {
// Can happen if this handler is enabled in CLI
// Silently ignore the error.
}
}
}