From 9dcb383926e51b45f0c1be8abd8428b86639ecba Mon Sep 17 00:00:00 2001 From: Deeka Wong <8337659+huangdijia@users.noreply.github.com> Date: Tue, 30 Sep 2025 14:12:37 +0800 Subject: [PATCH 1/2] ref(logs): extract attribute compilation to dedicated method in LogsHandler Extracts the attribute merging logic into a new compileAttributes() method for better organization and readability. The new method properly structures log attributes with namespaced keys (log.context, log.extra, log.channel) while maintaining the existing sentry.origin attribute. --- src/Monolog/LogsHandler.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Monolog/LogsHandler.php b/src/Monolog/LogsHandler.php index 6d6842edd..b4dc60d13 100644 --- a/src/Monolog/LogsHandler.php +++ b/src/Monolog/LogsHandler.php @@ -66,7 +66,7 @@ public function handle($record): bool self::getSentryLogLevelFromMonologLevel($record['level']), $record['message'], [], - array_merge($record['context'], $record['extra'], ['sentry.origin' => 'auto.logger.monolog']) + $this->compileAttributes($record) ); return $this->bubble === false; @@ -123,4 +123,17 @@ public function __destruct() // Just in case so that the destructor can never fail. } } + + /** + * @param array|LogRecord $record + */ + protected function compileAttributes($record): array + { + return [ + 'log.context' => $record['context'], + 'log.extra' => $record['extra'], + 'log.channel' => $record['channel'], + 'sentry.origin' => 'auto.logger.monolog', + ]; + } } From 921493ae125d6684bf93c60ef74a6e7ce7074a62 Mon Sep 17 00:00:00 2001 From: Deeka Wong <8337659+huangdijia@users.noreply.github.com> Date: Thu, 16 Oct 2025 11:52:31 +0800 Subject: [PATCH 2/2] ref(logs): use Arr utility to simplify attribute compilation in compileAttributes method --- src/Monolog/LogsHandler.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Monolog/LogsHandler.php b/src/Monolog/LogsHandler.php index b4dc60d13..ddd0d8de1 100644 --- a/src/Monolog/LogsHandler.php +++ b/src/Monolog/LogsHandler.php @@ -10,6 +10,7 @@ use Monolog\LogRecord; use Sentry\Logs\LogLevel; use Sentry\Logs\Logs; +use Sentry\Util\Arr; class LogsHandler implements HandlerInterface { @@ -130,8 +131,8 @@ public function __destruct() protected function compileAttributes($record): array { return [ - 'log.context' => $record['context'], - 'log.extra' => $record['extra'], + ...Arr::simpleDot(['context' => $record['context']]), + ...Arr::simpleDot(['extra' => $record['extra']]), 'log.channel' => $record['channel'], 'sentry.origin' => 'auto.logger.monolog', ];