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 %}
+
+ {% 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);
+ }
}
}