From b9d21aaa7b4b7a18e174318d660cce0321ba5374 Mon Sep 17 00:00:00 2001 From: Maxim Smakouz Date: Tue, 2 Jan 2024 15:33:20 +0200 Subject: [PATCH 1/5] Update monolog/monolog to 3.x --- composer.json | 2 +- src/Bridge/Monolog/composer.json | 2 +- .../Monolog/src/Bootloader/MonologBootloader.php | 5 +++-- src/Bridge/Monolog/src/Config/MonologConfig.php | 8 +++++--- src/Bridge/Monolog/src/EventHandler.php | 9 +++++++-- src/Bridge/Monolog/tests/FactoryTest.php | 2 +- src/Bridge/Monolog/tests/HandlersTest.php | 16 +++++++++++----- src/Bridge/Monolog/tests/ListenersTest.php | 6 +++--- src/Bridge/Monolog/tests/RotateHandlerTest.php | 6 +++--- src/Telemetry/src/Monolog/TelemetryProcessor.php | 7 ++++++- 10 files changed, 41 insertions(+), 22 deletions(-) diff --git a/composer.json b/composer.json index 97d37e2f6..cf5630fc0 100644 --- a/composer.json +++ b/composer.json @@ -37,7 +37,7 @@ "doctrine/annotations": "^1.12 || ^2.0", "doctrine/inflector": "^1.4|^2.0", "league/flysystem": "^2.3.1", - "monolog/monolog": "^2.2", + "monolog/monolog": "^3.5", "myclabs/deep-copy": "^1.9", "nette/php-generator": "^4.1.2", "nikic/php-parser": "^4.15.5", diff --git a/src/Bridge/Monolog/composer.json b/src/Bridge/Monolog/composer.json index 0e32802f1..7fcb762eb 100644 --- a/src/Bridge/Monolog/composer.json +++ b/src/Bridge/Monolog/composer.json @@ -28,7 +28,7 @@ ], "require": { "php": ">=8.1", - "monolog/monolog": "^2.2" + "monolog/monolog": "^3.5" }, "require-dev": { "spiral/boot": "^3.12", diff --git a/src/Bridge/Monolog/src/Bootloader/MonologBootloader.php b/src/Bridge/Monolog/src/Bootloader/MonologBootloader.php index a68c9e4d9..c6a8d733e 100644 --- a/src/Bridge/Monolog/src/Bootloader/MonologBootloader.php +++ b/src/Bridge/Monolog/src/Bootloader/MonologBootloader.php @@ -7,6 +7,7 @@ use Monolog\Formatter\LineFormatter; use Monolog\Handler\HandlerInterface; use Monolog\Handler\RotatingFileHandler; +use Monolog\Level; use Monolog\Logger; use Monolog\ResettableInterface; use Psr\Log\LoggerInterface; @@ -65,7 +66,7 @@ public function init(Container $container, FinalizerInterface $finalizer): void $this->config->setDefaults(MonologConfig::CONFIG, [ 'default' => $this->env->get('MONOLOG_DEFAULT_CHANNEL', MonologConfig::DEFAULT_CHANNEL), - 'globalLevel' => Logger::DEBUG, + 'globalLevel' => Level::Debug, 'handlers' => [], ]); @@ -90,7 +91,7 @@ public function addHandler(string $channel, HandlerInterface $handler): void public function logRotate( string $filename, - int $level = Logger::DEBUG, + int|Level $level = Level::Debug, int $maxFiles = 0, bool $bubble = true ): HandlerInterface { diff --git a/src/Bridge/Monolog/src/Config/MonologConfig.php b/src/Bridge/Monolog/src/Config/MonologConfig.php index ec87eb792..2b0bb565f 100644 --- a/src/Bridge/Monolog/src/Config/MonologConfig.php +++ b/src/Bridge/Monolog/src/Config/MonologConfig.php @@ -4,7 +4,7 @@ namespace Spiral\Monolog\Config; -use Monolog\Logger; +use Monolog\Level; use Spiral\Core\Container\Autowire; use Spiral\Core\InjectableConfig; use Spiral\Monolog\Exception\ConfigException; @@ -16,7 +16,7 @@ final class MonologConfig extends InjectableConfig protected array $config = [ 'default' => self::DEFAULT_CHANNEL, - 'globalLevel' => Logger::DEBUG, + 'globalLevel' => Level::Debug, 'handlers' => [], ]; @@ -27,7 +27,9 @@ public function getDefault(): string public function getEventLevel(): int { - return $this->config['globalLevel'] ?? Logger::DEBUG; + $level = $this->config['globalLevel'] ?? Level::Debug; + + return $level instanceof Level ? $level->value : $level; } /** diff --git a/src/Bridge/Monolog/src/EventHandler.php b/src/Bridge/Monolog/src/EventHandler.php index 199bebdb3..784b79092 100644 --- a/src/Bridge/Monolog/src/EventHandler.php +++ b/src/Bridge/Monolog/src/EventHandler.php @@ -6,6 +6,7 @@ use Monolog\Handler\AbstractHandler; use Monolog\Logger; +use Monolog\LogRecord; use Spiral\Logger\Event\LogEvent; use Spiral\Logger\ListenerRegistryInterface; @@ -19,12 +20,16 @@ public function __construct( parent::__construct($level, $bubble); } - public function handle(array $record): bool + public function handle(array|LogRecord $record): bool { + if ($record instanceof LogRecord) { + $record = $record->toArray(); + } + $e = new LogEvent( $record['datetime'], $record['channel'], - \strtolower(Logger::getLevelName($record['level'])), + \strtolower(Logger::toMonologLevel($record['level'])->getName()), $record['message'], $record['context'] ); diff --git a/src/Bridge/Monolog/tests/FactoryTest.php b/src/Bridge/Monolog/tests/FactoryTest.php index 62a538e50..086c4c93e 100644 --- a/src/Bridge/Monolog/tests/FactoryTest.php +++ b/src/Bridge/Monolog/tests/FactoryTest.php @@ -29,7 +29,7 @@ class FactoryTest extends BaseTestCase public function testDefaultLogger(): void { - $factory = new LogFactory(new MonologConfig([]), new ListenerRegistry(),$this->container); + $factory = new LogFactory(new MonologConfig([]), new ListenerRegistry(), $this->container); $logger = $factory->getLogger(); $this->assertNotEmpty($logger); diff --git a/src/Bridge/Monolog/tests/HandlersTest.php b/src/Bridge/Monolog/tests/HandlersTest.php index 2d00effa4..ca3144dfa 100644 --- a/src/Bridge/Monolog/tests/HandlersTest.php +++ b/src/Bridge/Monolog/tests/HandlersTest.php @@ -5,7 +5,9 @@ namespace Spiral\Tests\Monolog; use Monolog\Handler\NullHandler; +use Monolog\Level; use Monolog\Logger; +use Monolog\LogRecord; use Spiral\Boot\BootloadManager\StrategyBasedBootloadManager; use Spiral\Boot\FinalizerInterface; use Spiral\Config\ConfigManager; @@ -57,7 +59,7 @@ public function testNoHandlers(): void public function testDefaultHandler(): void { $this->container->bind(MonologConfig::class, new MonologConfig([ - 'globalHandler' => Logger::DEBUG + 'globalHandler' => Level::Debug ])); $logger = $this->getLogger(); @@ -70,7 +72,7 @@ public function testInvalidHandler(): void $this->expectException(ConfigException::class); $this->container->bind(MonologConfig::class, new MonologConfig([ - 'globalHandler' => Logger::DEBUG, + 'globalHandler' => Level::Debug, 'handlers' => [ 'test' => [ ['what?'] @@ -141,7 +143,7 @@ public function testConstructWithOptionsHandler(): void [ 'class' => NullHandler::class, 'options' => [ - 'level' => Logger::CRITICAL + 'level' => Level::Critical ] ] ] @@ -152,8 +154,12 @@ public function testConstructWithOptionsHandler(): void $this->assertCount(2, $logger->getHandlers()); $this->assertInstanceOf(NullHandler::class, $logger->getHandlers()[0]); - $this->assertFalse($logger->getHandlers()[0]->isHandling(['level' => Logger::DEBUG])); - $this->assertTrue($logger->getHandlers()[0]->isHandling(['level' => Logger::CRITICAL])); + $this->assertFalse($logger->getHandlers()[0]->isHandling( + new LogRecord(new \DateTimeImmutable(), 'test', Level::Debug, 'test') + )); + $this->assertTrue($logger->getHandlers()[0]->isHandling( + new LogRecord(new \DateTimeImmutable(), 'test', Level::Critical, 'test') + )); } protected function getLogger(): Logger diff --git a/src/Bridge/Monolog/tests/ListenersTest.php b/src/Bridge/Monolog/tests/ListenersTest.php index a2296995d..77589669f 100644 --- a/src/Bridge/Monolog/tests/ListenersTest.php +++ b/src/Bridge/Monolog/tests/ListenersTest.php @@ -4,7 +4,7 @@ namespace Spiral\Tests\Monolog; -use Monolog\Logger; +use Monolog\Level; use PHPUnit\Framework\TestCase; use Psr\Log\LogLevel; use Spiral\Core\Container; @@ -18,7 +18,7 @@ class ListenersTest extends TestCase public function testListenDebug(): void { $factory = new LogFactory(new MonologConfig([ - 'globalLevel' => Logger::DEBUG + 'globalLevel' => Level::Debug ]), $l = new ListenerRegistry(), new Container()); $logger = $factory->getLogger(); @@ -49,7 +49,7 @@ public function testListenDebug(): void public function testListenError(): void { $factory = new LogFactory(new MonologConfig([ - 'globalLevel' => Logger::ERROR + 'globalLevel' => Level::Error ]), $ll = new ListenerRegistry(), new Container()); $logger = $factory->getLogger(); diff --git a/src/Bridge/Monolog/tests/RotateHandlerTest.php b/src/Bridge/Monolog/tests/RotateHandlerTest.php index 6968d156b..8b3c39673 100644 --- a/src/Bridge/Monolog/tests/RotateHandlerTest.php +++ b/src/Bridge/Monolog/tests/RotateHandlerTest.php @@ -5,7 +5,7 @@ namespace Spiral\Tests\Monolog; use Monolog\Handler\RotatingFileHandler; -use Monolog\Logger; +use Monolog\Level; use Spiral\Boot\BootloadManager\DefaultInvokerStrategy; use Spiral\Boot\BootloadManager\Initializer; use Spiral\Boot\BootloadManager\InitializerInterface; @@ -58,7 +58,7 @@ public function load(string $section): array $handler = $autowire->resolve($this->container); $this->assertInstanceOf(RotatingFileHandler::class, $handler); - $this->assertSame(Logger::DEBUG, $handler->getLevel()); + $this->assertSame(Level::Debug, $handler->getLevel()); $this->assertTrue($handler->getBubble()); } @@ -79,7 +79,7 @@ public function testChangeFormat(): void $handler = $autowire->resolve($this->container); $this->assertInstanceOf(RotatingFileHandler::class, $handler); - $this->assertSame(Logger::DEBUG, $handler->getLevel()); + $this->assertSame(Level::Debug, $handler->getLevel()); $formatter = $handler->getFormatter(); $this->assertSame('foo', (new \ReflectionProperty($formatter, 'format'))->getValue($formatter)); diff --git a/src/Telemetry/src/Monolog/TelemetryProcessor.php b/src/Telemetry/src/Monolog/TelemetryProcessor.php index 0ce7ecc41..0a9f799f4 100644 --- a/src/Telemetry/src/Monolog/TelemetryProcessor.php +++ b/src/Telemetry/src/Monolog/TelemetryProcessor.php @@ -4,6 +4,7 @@ namespace Spiral\Telemetry\Monolog; +use Monolog\LogRecord; use Monolog\Processor\ProcessorInterface; use Psr\Container\ContainerInterface; use Spiral\Telemetry\TracerInterface; @@ -15,8 +16,12 @@ public function __construct( ) { } - public function __invoke(array $record): array + public function __invoke(LogRecord|array $record): array { + if ($record instanceof LogRecord) { + $record = $record->toArray(); + } + $tracer = $this->container->get(TracerInterface::class); \assert($tracer instanceof TracerInterface); From 810faba89a8d3221a6be636f2072190a24442327 Mon Sep 17 00:00:00 2001 From: Maxim Smakouz Date: Tue, 2 Jan 2024 18:23:43 +0200 Subject: [PATCH 2/5] Revert supporting monolog/monolog 2.x --- composer.json | 2 +- src/Bridge/Monolog/composer.json | 2 +- .../src/Bootloader/MonologBootloader.php | 4 ++-- .../Monolog/src/Config/MonologConfig.php | 5 ++-- src/Bridge/Monolog/src/EventHandler.php | 2 +- src/Bridge/Monolog/tests/HandlersTest.php | 23 +++++++++++-------- src/Bridge/Monolog/tests/ListenersTest.php | 6 ++--- .../Monolog/tests/RotateHandlerTest.php | 7 ++++-- 8 files changed, 30 insertions(+), 21 deletions(-) diff --git a/composer.json b/composer.json index cf5630fc0..1acd66145 100644 --- a/composer.json +++ b/composer.json @@ -37,7 +37,7 @@ "doctrine/annotations": "^1.12 || ^2.0", "doctrine/inflector": "^1.4|^2.0", "league/flysystem": "^2.3.1", - "monolog/monolog": "^3.5", + "monolog/monolog": "^2.9.2 || ^3.5", "myclabs/deep-copy": "^1.9", "nette/php-generator": "^4.1.2", "nikic/php-parser": "^4.15.5", diff --git a/src/Bridge/Monolog/composer.json b/src/Bridge/Monolog/composer.json index 7fcb762eb..60742c410 100644 --- a/src/Bridge/Monolog/composer.json +++ b/src/Bridge/Monolog/composer.json @@ -28,7 +28,7 @@ ], "require": { "php": ">=8.1", - "monolog/monolog": "^3.5" + "monolog/monolog": "^2.9.2 || ^3.5" }, "require-dev": { "spiral/boot": "^3.12", diff --git a/src/Bridge/Monolog/src/Bootloader/MonologBootloader.php b/src/Bridge/Monolog/src/Bootloader/MonologBootloader.php index c6a8d733e..1c4bfb6fb 100644 --- a/src/Bridge/Monolog/src/Bootloader/MonologBootloader.php +++ b/src/Bridge/Monolog/src/Bootloader/MonologBootloader.php @@ -66,7 +66,7 @@ public function init(Container $container, FinalizerInterface $finalizer): void $this->config->setDefaults(MonologConfig::CONFIG, [ 'default' => $this->env->get('MONOLOG_DEFAULT_CHANNEL', MonologConfig::DEFAULT_CHANNEL), - 'globalLevel' => Level::Debug, + 'globalLevel' => Logger::DEBUG, 'handlers' => [], ]); @@ -91,7 +91,7 @@ public function addHandler(string $channel, HandlerInterface $handler): void public function logRotate( string $filename, - int|Level $level = Level::Debug, + int|Level $level = Logger::DEBUG, int $maxFiles = 0, bool $bubble = true ): HandlerInterface { diff --git a/src/Bridge/Monolog/src/Config/MonologConfig.php b/src/Bridge/Monolog/src/Config/MonologConfig.php index 2b0bb565f..000e9d0fa 100644 --- a/src/Bridge/Monolog/src/Config/MonologConfig.php +++ b/src/Bridge/Monolog/src/Config/MonologConfig.php @@ -5,6 +5,7 @@ namespace Spiral\Monolog\Config; use Monolog\Level; +use Monolog\Logger; use Spiral\Core\Container\Autowire; use Spiral\Core\InjectableConfig; use Spiral\Monolog\Exception\ConfigException; @@ -16,7 +17,7 @@ final class MonologConfig extends InjectableConfig protected array $config = [ 'default' => self::DEFAULT_CHANNEL, - 'globalLevel' => Level::Debug, + 'globalLevel' => Logger::DEBUG, 'handlers' => [], ]; @@ -27,7 +28,7 @@ public function getDefault(): string public function getEventLevel(): int { - $level = $this->config['globalLevel'] ?? Level::Debug; + $level = $this->config['globalLevel'] ?? Logger::DEBUG; return $level instanceof Level ? $level->value : $level; } diff --git a/src/Bridge/Monolog/src/EventHandler.php b/src/Bridge/Monolog/src/EventHandler.php index 784b79092..e23cb9015 100644 --- a/src/Bridge/Monolog/src/EventHandler.php +++ b/src/Bridge/Monolog/src/EventHandler.php @@ -29,7 +29,7 @@ public function handle(array|LogRecord $record): bool $e = new LogEvent( $record['datetime'], $record['channel'], - \strtolower(Logger::toMonologLevel($record['level'])->getName()), + \strtolower(Logger::getLevelName($record['level'])), $record['message'], $record['context'] ); diff --git a/src/Bridge/Monolog/tests/HandlersTest.php b/src/Bridge/Monolog/tests/HandlersTest.php index ca3144dfa..4ecd12e26 100644 --- a/src/Bridge/Monolog/tests/HandlersTest.php +++ b/src/Bridge/Monolog/tests/HandlersTest.php @@ -59,7 +59,7 @@ public function testNoHandlers(): void public function testDefaultHandler(): void { $this->container->bind(MonologConfig::class, new MonologConfig([ - 'globalHandler' => Level::Debug + 'globalHandler' => Logger::DEBUG ])); $logger = $this->getLogger(); @@ -72,7 +72,7 @@ public function testInvalidHandler(): void $this->expectException(ConfigException::class); $this->container->bind(MonologConfig::class, new MonologConfig([ - 'globalHandler' => Level::Debug, + 'globalHandler' => Logger::DEBUG, 'handlers' => [ 'test' => [ ['what?'] @@ -143,7 +143,7 @@ public function testConstructWithOptionsHandler(): void [ 'class' => NullHandler::class, 'options' => [ - 'level' => Level::Critical + 'level' => Logger::CRITICAL ] ] ] @@ -154,16 +154,21 @@ public function testConstructWithOptionsHandler(): void $this->assertCount(2, $logger->getHandlers()); $this->assertInstanceOf(NullHandler::class, $logger->getHandlers()[0]); - $this->assertFalse($logger->getHandlers()[0]->isHandling( - new LogRecord(new \DateTimeImmutable(), 'test', Level::Debug, 'test') - )); - $this->assertTrue($logger->getHandlers()[0]->isHandling( - new LogRecord(new \DateTimeImmutable(), 'test', Level::Critical, 'test') - )); + + + $this->assertFalse($logger->getHandlers()[0]->isHandling($this->createLogRecord(Logger::DEBUG))); + $this->assertTrue($logger->getHandlers()[0]->isHandling($this->createLogRecord(Logger::CRITICAL))); } protected function getLogger(): Logger { return $this->container->get(LogsInterface::class)->getLogger('test'); } + + protected function createLogRecord(int $level): array|LogRecord + { + return Logger::API === 2 + ? ['level' => $level] + : new LogRecord(new \DateTimeImmutable(), 'test', Level::from($level), 'test'); + } } diff --git a/src/Bridge/Monolog/tests/ListenersTest.php b/src/Bridge/Monolog/tests/ListenersTest.php index 77589669f..a2296995d 100644 --- a/src/Bridge/Monolog/tests/ListenersTest.php +++ b/src/Bridge/Monolog/tests/ListenersTest.php @@ -4,7 +4,7 @@ namespace Spiral\Tests\Monolog; -use Monolog\Level; +use Monolog\Logger; use PHPUnit\Framework\TestCase; use Psr\Log\LogLevel; use Spiral\Core\Container; @@ -18,7 +18,7 @@ class ListenersTest extends TestCase public function testListenDebug(): void { $factory = new LogFactory(new MonologConfig([ - 'globalLevel' => Level::Debug + 'globalLevel' => Logger::DEBUG ]), $l = new ListenerRegistry(), new Container()); $logger = $factory->getLogger(); @@ -49,7 +49,7 @@ public function testListenDebug(): void public function testListenError(): void { $factory = new LogFactory(new MonologConfig([ - 'globalLevel' => Level::Error + 'globalLevel' => Logger::ERROR ]), $ll = new ListenerRegistry(), new Container()); $logger = $factory->getLogger(); diff --git a/src/Bridge/Monolog/tests/RotateHandlerTest.php b/src/Bridge/Monolog/tests/RotateHandlerTest.php index 8b3c39673..735f665b2 100644 --- a/src/Bridge/Monolog/tests/RotateHandlerTest.php +++ b/src/Bridge/Monolog/tests/RotateHandlerTest.php @@ -6,6 +6,7 @@ use Monolog\Handler\RotatingFileHandler; use Monolog\Level; +use Monolog\Logger; use Spiral\Boot\BootloadManager\DefaultInvokerStrategy; use Spiral\Boot\BootloadManager\Initializer; use Spiral\Boot\BootloadManager\InitializerInterface; @@ -58,7 +59,8 @@ public function load(string $section): array $handler = $autowire->resolve($this->container); $this->assertInstanceOf(RotatingFileHandler::class, $handler); - $this->assertSame(Level::Debug, $handler->getLevel()); + $level = $handler->getLevel(); + $this->assertSame(Logger::DEBUG, $level instanceof Level ? $level->value : $level); $this->assertTrue($handler->getBubble()); } @@ -79,7 +81,8 @@ public function testChangeFormat(): void $handler = $autowire->resolve($this->container); $this->assertInstanceOf(RotatingFileHandler::class, $handler); - $this->assertSame(Level::Debug, $handler->getLevel()); + $level = $handler->getLevel(); + $this->assertSame(Logger::DEBUG, $level instanceof Level ? $level->value : $level); $formatter = $handler->getFormatter(); $this->assertSame('foo', (new \ReflectionProperty($formatter, 'format'))->getValue($formatter)); From 453427ad7c4d210785f68bb819afbdca647cdaae Mon Sep 17 00:00:00 2001 From: Maxim Smakouz Date: Tue, 2 Jan 2024 19:18:44 +0200 Subject: [PATCH 3/5] Remove unused code --- src/Bridge/Monolog/src/EventHandler.php | 4 ---- src/Telemetry/src/Monolog/TelemetryProcessor.php | 4 ---- 2 files changed, 8 deletions(-) diff --git a/src/Bridge/Monolog/src/EventHandler.php b/src/Bridge/Monolog/src/EventHandler.php index e23cb9015..c5a34bdb2 100644 --- a/src/Bridge/Monolog/src/EventHandler.php +++ b/src/Bridge/Monolog/src/EventHandler.php @@ -22,10 +22,6 @@ public function __construct( public function handle(array|LogRecord $record): bool { - if ($record instanceof LogRecord) { - $record = $record->toArray(); - } - $e = new LogEvent( $record['datetime'], $record['channel'], diff --git a/src/Telemetry/src/Monolog/TelemetryProcessor.php b/src/Telemetry/src/Monolog/TelemetryProcessor.php index 0a9f799f4..210d13963 100644 --- a/src/Telemetry/src/Monolog/TelemetryProcessor.php +++ b/src/Telemetry/src/Monolog/TelemetryProcessor.php @@ -18,10 +18,6 @@ public function __construct( public function __invoke(LogRecord|array $record): array { - if ($record instanceof LogRecord) { - $record = $record->toArray(); - } - $tracer = $this->container->get(TracerInterface::class); \assert($tracer instanceof TracerInterface); From 974670b2f68c22d8c318990ea8ee89f3a5199897 Mon Sep 17 00:00:00 2001 From: Maxim Smakouz Date: Tue, 2 Jan 2024 19:20:23 +0200 Subject: [PATCH 4/5] Fix CS --- src/Bridge/Monolog/tests/HandlersTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Bridge/Monolog/tests/HandlersTest.php b/src/Bridge/Monolog/tests/HandlersTest.php index 4ecd12e26..7810e10a1 100644 --- a/src/Bridge/Monolog/tests/HandlersTest.php +++ b/src/Bridge/Monolog/tests/HandlersTest.php @@ -155,7 +155,6 @@ public function testConstructWithOptionsHandler(): void $this->assertCount(2, $logger->getHandlers()); $this->assertInstanceOf(NullHandler::class, $logger->getHandlers()[0]); - $this->assertFalse($logger->getHandlers()[0]->isHandling($this->createLogRecord(Logger::DEBUG))); $this->assertTrue($logger->getHandlers()[0]->isHandling($this->createLogRecord(Logger::CRITICAL))); } From 7d08cacc0b12aaa4c88a7dbce97bb0d278b3409e Mon Sep 17 00:00:00 2001 From: Maxim Smakouz Date: Tue, 2 Jan 2024 19:28:26 +0200 Subject: [PATCH 5/5] Fix TelemetryProcessor --- src/Telemetry/src/Monolog/TelemetryProcessor.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Telemetry/src/Monolog/TelemetryProcessor.php b/src/Telemetry/src/Monolog/TelemetryProcessor.php index 210d13963..0a9f799f4 100644 --- a/src/Telemetry/src/Monolog/TelemetryProcessor.php +++ b/src/Telemetry/src/Monolog/TelemetryProcessor.php @@ -18,6 +18,10 @@ public function __construct( public function __invoke(LogRecord|array $record): array { + if ($record instanceof LogRecord) { + $record = $record->toArray(); + } + $tracer = $this->container->get(TracerInterface::class); \assert($tracer instanceof TracerInterface);