Skip to content
Extraits de code Groupes Projets
Valider 5ca99240 rédigé par Matthieu Napoli's avatar Matthieu Napoli
Parcourir les fichiers

Better fix for #6978 Keep logging in configured backends (e.g. file) and no additional class

parent b3251b8d
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
<?php
namespace Piwik\Log;
use Monolog\Logger;
use Psr\Log\AbstractLogger;
use Psr\Log\LoggerInterface;
/**
* Basic logger that streams messages to stdout.
*
* This logger is used in the archiving when archive.php is called from a HTTP request. In that specific case,
* we want to log to stdout.
*
* @see misc/cron/archive.php
*/
class WebCronArchiveLogger extends AbstractLogger implements LoggerInterface
{
public function log($level, $message, array $context = array())
{
if ($level <= Logger::DEBUG) {
return;
}
echo $message . "\n";
}
}
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
* @package Piwik * @package Piwik
*/ */
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Piwik\Container\StaticContainer; use Piwik\Container\StaticContainer;
use Piwik\Log\WebCronArchiveLogger; use Piwik\Log\WebCronArchiveLogger;
use Symfony\Bridge\Monolog\Handler\ConsoleHandler; use Symfony\Bridge\Monolog\Handler\ConsoleHandler;
...@@ -65,11 +67,15 @@ if (isset($_SERVER['argv']) && Piwik\Console::isSupported()) { ...@@ -65,11 +67,15 @@ if (isset($_SERVER['argv']) && Piwik\Console::isSupported()) {
// just like for CLI // just like for CLI
StaticContainer::setEnvironment('cli'); StaticContainer::setEnvironment('cli');
/** @var ConsoleHandler $consoleLogHandler */ /** @var ConsoleHandler $consoleLogHandler */
$consoleLogHandler = StaticContainer::getContainer()->get('Symfony\Bridge\Monolog\Handler\ConsoleHandler'); $consoleLogHandler = StaticContainer::get('Symfony\Bridge\Monolog\Handler\ConsoleHandler');
$consoleLogHandler->setOutput(new ConsoleOutput(OutputInterface::VERBOSITY_VERBOSE)); $consoleLogHandler->setOutput(new ConsoleOutput(OutputInterface::VERBOSITY_VERBOSE));
} else { } else {
// HTTP request: logs needs to be dumped on stdout // HTTP request: logs needs to be dumped in the HTTP response (on top of existing log destinations)
StaticContainer::getContainer()->set('Psr\Log\LoggerInterface', new WebCronArchiveLogger); /** @var \Monolog\Logger $logger */
$logger = StaticContainer::get('Psr\Log\LoggerInterface');
$handler = new StreamHandler('php://output', Logger::INFO);
$handler->setFormatter(StaticContainer::get('Piwik\Log\Formatter\LineMessageFormatter'));
$logger->pushHandler($handler);
} }
$archiver = new Piwik\CronArchive(); $archiver = new Piwik\CronArchive();
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter