diff --git a/composer.json b/composer.json index 277801581..76ecfa6ea 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "psr/http-factory-implementation": "*", "psy/psysh": "^0.10.0 || ^0.11.0", "ramsey/uuid": "^4.7", - "sentry/sentry": "^4.16.0", + "sentry/sentry": "^4.18.0", "symfony/console": "^5.3 || ^6.0 || ^7.0", "symfony/http-foundation": "^5.3 || ^6.0 || ^7.0", "symfony/polyfill-php84": "^1.33", diff --git a/src/sentry/composer.json b/src/sentry/composer.json index 8d7704b29..b8585a2ae 100644 --- a/src/sentry/composer.json +++ b/src/sentry/composer.json @@ -33,7 +33,7 @@ "hyperf/http-server": "~3.1.0", "hyperf/support": "~3.1.0", "hyperf/tappable": "~3.1.0", - "sentry/sentry": "^4.16.0", + "sentry/sentry": "^4.18.0", "symfony/polyfill-php85": "^1.33" }, "suggest": { diff --git a/src/sentry/src/Monolog/LogsHandler.php b/src/sentry/src/Monolog/LogsHandler.php index f7fb814f6..de6210906 100644 --- a/src/sentry/src/Monolog/LogsHandler.php +++ b/src/sentry/src/Monolog/LogsHandler.php @@ -13,10 +13,9 @@ use Hyperf\Collection\Arr; use Monolog\LogRecord; +use Override; use Sentry\Logs\LogLevel; -use Sentry\Logs\Logs; use Sentry\Monolog\CompatibilityLogLevelTrait; -use Throwable; class LogsHandler extends \Sentry\Monolog\LogsHandler { @@ -35,35 +34,19 @@ public function __construct( } /** - * @param array|LogRecord $record + * @param array|LogRecord $record + * + * @return array */ - public function handle($record): bool + #[Override] + protected function compileAttributes($record): array { - if (! $this->isHandling($record)) { - return false; - } - - // Do not collect logs for exceptions, they should be handled separately by the `Handler` or `captureException` - if ( - isset($record['context']['exception']) - && $record['context']['exception'] instanceof Throwable - ) { - return false; - } - - Logs::getInstance()->aggregator()->add( - self::getSentryLogLevelFromMonologLevel($record['level']), - $record['message'], - [], - array_merge( - Arr::dot($record['context'] ?? [], 'context.'), - Arr::dot($record['extra'] ?? [], 'extra.'), - ['logger.channel' => $record['channel'] ?? ''], - ['logger.group' => $this->group], - ['sentry.origin' => 'auto.log.monolog'] - ) + return array_merge( + Arr::dot($record['context'] ?? [], 'context.'), + Arr::dot($record['extra'] ?? [], 'extra.'), + ['logger.channel' => $record['channel'] ?? ''], + ['logger.group' => $this->group], + ['sentry.origin' => 'auto.log.monolog'] ); - - return $this->bubble === false; } }