From 9e0be97703e0ec6e9c5923cd858dacf54b61d32d Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Mon, 7 Jan 2019 21:54:40 +0100 Subject: [PATCH] Bugfixing legacy loglevel --- src/Core/Logger.php | 20 +++++++++----------- src/Util/LoggerFactory.php | 8 +++++++- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/Core/Logger.php b/src/Core/Logger.php index 425ea82dca..19e4d28d74 100644 --- a/src/Core/Logger.php +++ b/src/Core/Logger.php @@ -83,9 +83,7 @@ class Logger extends BaseObject return; } - if (is_int($loglevel)) { - $loglevel = self::mapLegacyConfigDebugLevel($loglevel); - } + $loglevel = self::mapLegacyConfigDebugLevel((string)$loglevel); LoggerFactory::addStreamHandler($logger, $logfile, $loglevel); @@ -107,7 +105,7 @@ class Logger extends BaseObject * Mapping a legacy level to the PSR-3 compliant levels * @see https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md#5-psrlogloglevel * - * @param int $level the level to be mapped + * @param mixed $level the level to be mapped * * @return string the PSR-3 compliant level */ @@ -115,26 +113,26 @@ class Logger extends BaseObject { switch ($level) { // legacy WARNING - case 0: + case "0": return LogLevel::ERROR; // legacy INFO - case 1: + case "1": return LogLevel::WARNING; // legacy TRACE - case 2: + case "2": return LogLevel::NOTICE; // legacy DEBUG - case 3: + case "3": return LogLevel::INFO; // legacy DATA - case 4: + case "4": return LogLevel::DEBUG; // legacy ALL - case 5: + case "5": return LogLevel::DEBUG; // default if nothing set default: - return LogLevel::NOTICE; + return $level; } } diff --git a/src/Util/LoggerFactory.php b/src/Util/LoggerFactory.php index 71239edbb3..1e7bdcd160 100644 --- a/src/Util/LoggerFactory.php +++ b/src/Util/LoggerFactory.php @@ -75,7 +75,13 @@ class LoggerFactory public static function addStreamHandler($logger, $stream, $level = LogLevel::NOTICE) { if ($logger instanceof Monolog\Logger) { - $fileHandler = new Monolog\Handler\StreamHandler($stream, Monolog\Logger::toMonologLevel($level)); + $loglevel = Monolog\Logger::toMonologLevel($level); + + // fallback to notice if an invalid loglevel is set + if (!is_int($loglevel)) { + $loglevel = LogLevel::NOTICE; + } + $fileHandler = new Monolog\Handler\StreamHandler($stream, $loglevel); $formatter = new Monolog\Formatter\LineFormatter("%datetime% %channel% [%level_name%]: %message% %context% %extra%\n"); $fileHandler->setFormatter($formatter);