From ef8db970f6fbc2d1fdc96658d8ee9ee48a7102d5 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/4] 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 f96a6a5e7..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.log.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 a20fe761a9e0c7d647129014b53a213545295e10 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/4] 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', ]; From afb5ba578524a55e24cb8d05a1521d4c90f5d2bd Mon Sep 17 00:00:00 2001 From: Deeka Wong <8337659+huangdijia@users.noreply.github.com> Date: Fri, 24 Oct 2025 09:18:41 +0800 Subject: [PATCH 3/4] Replace array spread with array_merge in compileAttributes Updated the compileAttributes method to use array_merge instead of array spread syntax for compatibility and clarity when merging context, extra, and additional attributes. --- src/Monolog/LogsHandler.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Monolog/LogsHandler.php b/src/Monolog/LogsHandler.php index ddd0d8de1..1b9fbc5ec 100644 --- a/src/Monolog/LogsHandler.php +++ b/src/Monolog/LogsHandler.php @@ -130,11 +130,13 @@ public function __destruct() */ protected function compileAttributes($record): array { - return [ - ...Arr::simpleDot(['context' => $record['context']]), - ...Arr::simpleDot(['extra' => $record['extra']]), - 'log.channel' => $record['channel'], - 'sentry.origin' => 'auto.logger.monolog', - ]; + return array_merge( + Arr::simpleDot(['context' => $record['context']]), + Arr::simpleDot(['extra' => $record['extra']]), + [ + 'log.channel' => $record['channel'], + 'sentry.origin' => 'auto.logger.monolog', + ] + ); } } From d5ee4b2106a24b476b30a672c64ab02770dcc5aa Mon Sep 17 00:00:00 2001 From: Deeka Wong <8337659+huangdijia@users.noreply.github.com> Date: Fri, 24 Oct 2025 09:26:42 +0800 Subject: [PATCH 4/4] Update sentry.origin attribute value Changed the 'sentry.origin' attribute from 'auto.logger.monolog' to 'auto.log.monolog' in the compileAttributes method for consistency or integration requirements. --- src/Monolog/LogsHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Monolog/LogsHandler.php b/src/Monolog/LogsHandler.php index 1b9fbc5ec..56e713013 100644 --- a/src/Monolog/LogsHandler.php +++ b/src/Monolog/LogsHandler.php @@ -135,7 +135,7 @@ protected function compileAttributes($record): array Arr::simpleDot(['extra' => $record['extra']]), [ 'log.channel' => $record['channel'], - 'sentry.origin' => 'auto.logger.monolog', + 'sentry.origin' => 'auto.log.monolog', ] ); }