From 620dca1126eb2384ccbd7c159b6a6ed8ecabbba4 Mon Sep 17 00:00:00 2001 From: pafernandez-oesia <96843912+pafernandez-oesia@users.noreply.github.com> Date: Tue, 2 Aug 2022 13:47:03 +0200 Subject: [PATCH] Update BrowserConsoleHandler console output method (#1739) Instead of using console.log for all log levels, it uses debug, info, warn and error methods depending on the log level. This makes filtering logs easier in the browser console and highlights error level messages. --- src/Monolog/Handler/BrowserConsoleHandler.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Monolog/Handler/BrowserConsoleHandler.php b/src/Monolog/Handler/BrowserConsoleHandler.php index fa383f1c..3c985b74 100644 --- a/src/Monolog/Handler/BrowserConsoleHandler.php +++ b/src/Monolog/Handler/BrowserConsoleHandler.php @@ -14,6 +14,7 @@ namespace Monolog\Handler; use Monolog\Formatter\FormatterInterface; use Monolog\Formatter\LineFormatter; use Monolog\Utils; +use Monolog\Logger; use function count; use function headers_list; @@ -177,7 +178,7 @@ class BrowserConsoleHandler extends AbstractProcessingHandler $extra = static::dump('Extra', $record['extra']); if (empty($context) && empty($extra)) { - $script[] = static::call_array('log', static::handleStyles($record['formatted'])); + $script[] = static::call_array(static::getConsoleMethodForLevel($record['level']), static::handleStyles($record['formatted'])); } else { $script = array_merge( $script, @@ -192,6 +193,20 @@ class BrowserConsoleHandler extends AbstractProcessingHandler return "(function (c) {if (c && c.groupCollapsed) {\n" . implode("\n", $script) . "\n}})(console);"; } + private static function getConsoleMethodForLevel($level) + { + return [ + Logger::DEBUG => 'debug', + Logger::INFO => 'info', + Logger::NOTICE => 'info', + Logger::WARNING => 'warn', + Logger::ERROR => 'error', + Logger::CRITICAL => 'error', + Logger::ALERT => 'error', + Logger::EMERGENCY => 'error', + ][$level] ?? 'log'; + } + /** * @return string[] */