From be4eb67997c85e03ff8b96557bae855140b9e501 Mon Sep 17 00:00:00 2001 From: jon-ht Date: Sat, 30 Mar 2024 23:47:38 +0100 Subject: [PATCH] [WebProfilerBundle] add extra data to logs panel --- .../Bridge/Monolog/Processor/DebugProcessor.php | 1 + .../Resources/views/Collector/logger.html.twig | 12 ++++++++++++ .../HttpKernel/DataCollector/LoggerDataCollector.php | 1 + .../HttpKernel/Log/DebugLoggerConfigurator.php | 9 +++++++++ 4 files changed, 23 insertions(+) diff --git a/src/Symfony/Bridge/Monolog/Processor/DebugProcessor.php b/src/Symfony/Bridge/Monolog/Processor/DebugProcessor.php index df9182becada9..61d19a45887fd 100644 --- a/src/Symfony/Bridge/Monolog/Processor/DebugProcessor.php +++ b/src/Symfony/Bridge/Monolog/Processor/DebugProcessor.php @@ -40,6 +40,7 @@ public function __invoke(LogRecord $record): LogRecord 'priority' => $record->level->value, 'priorityName' => $record->level->getName(), 'context' => $record->context, + 'extra' => $record->extra, 'channel' => $record->channel ?? '', ]; diff --git a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/logger.html.twig b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/logger.html.twig index 8055016e04259..8f321976d991a 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/logger.html.twig +++ b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/logger.html.twig @@ -540,6 +540,7 @@ {% macro render_log_message(category, log_index, log) %} {% set has_context = log.context is defined and log.context is not empty %} {% set has_trace = log.context.exception.trace is defined %} + {% set has_extra = log.extra is defined and log.extra is not empty %} {% if not has_context %} {{ profiler_dump_log(log.message) }} @@ -566,6 +567,11 @@ {% endif %} + {% if has_extra %} + {% set extra_id = 'extra-data-' ~ category ~ '-' ~ log_index %} + + {% endif %} + {% if has_context %}
{{ profiler_dump(log.context, maxDepth=1) }} @@ -577,5 +583,11 @@ {{ profiler_dump(log.context.exception.trace, maxDepth=1) }}
{% endif %} + + {% if has_extra %} +
+ {{ profiler_dump(log.extra, maxDepth=1) }} +
+ {% endif %} {% endmacro %} diff --git a/src/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php b/src/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php index ecf638fde8650..b411a33863846 100644 --- a/src/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php +++ b/src/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php @@ -96,6 +96,7 @@ public function getProcessedLogs(): array 'channel' => $rawLogData['channel']->getValue(), 'message' => $rawLogData['message'], 'context' => $rawLogData['context'], + 'extra' => $rawLogData['extra'], ]; } diff --git a/src/Symfony/Component/HttpKernel/Log/DebugLoggerConfigurator.php b/src/Symfony/Component/HttpKernel/Log/DebugLoggerConfigurator.php index e036f398eced7..31ffeefcc7d6d 100644 --- a/src/Symfony/Component/HttpKernel/Log/DebugLoggerConfigurator.php +++ b/src/Symfony/Component/HttpKernel/Log/DebugLoggerConfigurator.php @@ -30,7 +30,16 @@ public function __construct(callable $processor, ?bool $enable = null) public function pushDebugLogger(Logger $logger): void { if ($this->processor) { + $processors = $logger->getProcessors(); + while ([] !== $logger->getProcessors()) { + $logger->popProcessor(); + } + + // Ensure the DebugLogger is the first processor as Monolog add processors in reverse order $logger->pushProcessor($this->processor); + foreach ($processors as $processor) { + $logger->pushProcessor($processor); + } } }