Skip to content
18 changes: 17 additions & 1 deletion src/Monolog/LogsHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use Monolog\LogRecord;
use Sentry\Logs\LogLevel;
use Sentry\Logs\Logs;
use Sentry\Util\Arr;

class LogsHandler implements HandlerInterface
{
Expand Down Expand Up @@ -66,7 +67,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;
Expand Down Expand Up @@ -123,4 +124,19 @@ public function __destruct()
// Just in case so that the destructor can never fail.
}
}

/**
* @param array<string, mixed>|LogRecord $record
*/
protected function compileAttributes($record): array
{
return array_merge(
Arr::simpleDot(['context' => $record['context']]),
Arr::simpleDot(['extra' => $record['extra']]),
[
'log.channel' => $record['channel'],
'sentry.origin' => 'auto.logger.monolog',
]
);
}
}