mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-09-28 20:29:15 +02:00
Fixed logging
Broke loggers attached by queuedjobs because it wasn't using the global service. Since the stderr handler was set to bubble=false, those messages weren't picked up by queuedjobs. Removed preformatted handler since there's no longer an ability to run this stuff via web
This commit is contained in:
parent
7301b375b8
commit
2d4711de01
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace SilverStripe\Dev\Tasks;
|
namespace SilverStripe\Dev\Tasks;
|
||||||
|
|
||||||
|
use Monolog\Handler\FilterHandler;
|
||||||
use Monolog\Handler\StreamHandler;
|
use Monolog\Handler\StreamHandler;
|
||||||
use Monolog\Logger;
|
use Monolog\Logger;
|
||||||
use Psr\Log\LoggerInterface;
|
use Psr\Log\LoggerInterface;
|
||||||
@ -243,25 +244,28 @@ TXT;
|
|||||||
*/
|
*/
|
||||||
protected function addLogHandlers()
|
protected function addLogHandlers()
|
||||||
{
|
{
|
||||||
// Create a default logger with a custom name (less misleading than "error-log")
|
// Using a global service here so other systems can control and redirect log output,
|
||||||
$logger = Injector::inst()->create(LoggerInterface::class, 'log');
|
// for example when this task is run as part of a queuedjob
|
||||||
|
$logger = Injector::inst()->get(LoggerInterface::class)->withName('log');
|
||||||
|
|
||||||
if (Director::is_cli()) {
|
|
||||||
$formatter = new ColoredLineFormatter();
|
$formatter = new ColoredLineFormatter();
|
||||||
$formatter->ignoreEmptyContextAndExtra();
|
$formatter->ignoreEmptyContextAndExtra();
|
||||||
|
|
||||||
// Don't double process WARNING or higher levels in other handlers (bubble=false)
|
$errorHandler = new StreamHandler('php://stderr', Logger::ERROR);
|
||||||
$errorHandler = new StreamHandler('php://stderr', Logger::ERROR, false);
|
|
||||||
$errorHandler->setFormatter($formatter);
|
$errorHandler->setFormatter($formatter);
|
||||||
|
|
||||||
$standardHandler = new StreamHandler('php://stdout');
|
$standardHandler = new StreamHandler('php://stdout');
|
||||||
$standardHandler->setFormatter($formatter);
|
$standardHandler->setFormatter($formatter);
|
||||||
|
|
||||||
$logger->pushHandler($standardHandler);
|
// Avoid double logging of errors
|
||||||
|
$standardFilterHandler = new FilterHandler(
|
||||||
|
$standardHandler,
|
||||||
|
Logger::DEBUG,
|
||||||
|
Logger::WARNING
|
||||||
|
);
|
||||||
|
|
||||||
|
$logger->pushHandler($standardFilterHandler);
|
||||||
$logger->pushHandler($errorHandler);
|
$logger->pushHandler($errorHandler);
|
||||||
} else {
|
|
||||||
$logger->pushHandler(new PreformattedEchoHandler());
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user