diff --git a/src/Monolog/LogsHandler.php b/src/Monolog/LogsHandler.php index 6d6842edd..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 { @@ -66,7 +67,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 +124,17 @@ public function __destruct() // Just in case so that the destructor can never fail. } } + + /** + * @param array|LogRecord $record + */ + 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', + ]; + } }