From 4290df277a04935a261dbaa8b3a460fc58e025f3 Mon Sep 17 00:00:00 2001 From: Vardan Date: Mon, 12 Feb 2024 11:04:07 +0200 Subject: [PATCH 01/13] add support symfony 7 --- .github/workflows/ci.yaml | 41 +++++++--------- composer.json | 10 ++-- .../Handler/MonologHandlerDecorator.php | 15 +++--- .../Messenger/MonologHandlerDecoratorTest.php | 47 ++++++++++--------- 4 files changed, 56 insertions(+), 57 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7158bae..9293b76 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -15,33 +15,28 @@ jobs: - '7.4' - '8.0' - '8.1' - symfony-versions: ['none'] + - '8.2' coverage: ['none'] + symfony-versions: + - '4.4.*' + - '5.3.*' + - '5.4.*' + - '6.0.*' + - '7.0.*' + exclude: + - php: '7.4' + symfony-versions: '6.0.*' + - php: '7.4' + symfony-versions: '7.0.*' + - php: '8.0' + symfony-versions: '7.0.*' + - php: '8.1' + symfony-versions: '7.0.*' include: - - symfony-versions: '4.4.*' - php: '7.4' - - symfony-versions: '4.4.*' - php: '8.0' - - symfony-versions: '4.4.*' - php: '8.1' - - symfony-versions: '5.3.*' - php: '7.4' - - symfony-versions: '5.3.*' - php: '8.0' - - symfony-versions: '5.3.*' - php: '8.1' - - symfony-versions: '5.4.*' - php: '8.0' - - symfony-versions: '5.4.*' - php: '8.1' - - symfony-versions: '6.0.*' - php: '8.0' - - symfony-versions: '6.0.*' - php: '8.1' - description: 'Log Code Coverage' - symfony-versions: 'none' - php: '8.1' + php: '8.2' coverage: 'xdebug' + symfony-versions: '^7.0' name: PHP ${{ matrix.php }} Symfony ${{ matrix.symfony-versions }} ${{ matrix.description }} steps: diff --git a/composer.json b/composer.json index a581a41..e83d36a 100644 --- a/composer.json +++ b/composer.json @@ -27,17 +27,17 @@ ], "require": { "php": "^7.4 || ^8.0", - "symfony/console": "^4.4 || ^5.0 || ^6.0", - "symfony/dotenv": "^4.4 || ^5.0 || ^6.0", + "symfony/console": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/dotenv": "^4.4 || ^5.0 || ^6.0 || ^7.0", "symfony/monolog-bundle": "^3.0", "sentry/sentry-symfony": "^4.0", - "symfony/messenger": "^4.4 || ^5.0 || ^6.0" + "symfony/messenger": "^4.4 || ^5.0 || ^6.0 || ^7.0" }, "require-dev": { "phpstan/phpstan": "0.12.*", "squizlabs/php_codesniffer": "3.5.*", - "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.0", - "symfony/yaml": "^4.4 || ^5.0 || ^6.0" + "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/yaml": "^4.4 || ^5.0 || ^6.0 || ^7.0" }, "autoload": { "psr-4": { diff --git a/src/Monolog/Handler/MonologHandlerDecorator.php b/src/Monolog/Handler/MonologHandlerDecorator.php index a963148..0243289 100644 --- a/src/Monolog/Handler/MonologHandlerDecorator.php +++ b/src/Monolog/Handler/MonologHandlerDecorator.php @@ -5,6 +5,7 @@ namespace SentryMonologAdapter\Monolog\Handler; use Monolog\Handler\AbstractProcessingHandler; +use Monolog\LogRecord; use Sentry\Monolog\Handler; use Sentry\State\HubInterface; use Sentry\State\Scope; @@ -27,19 +28,21 @@ public function __construct(HubInterface $hub, Handler $sentryHandler) } /** - * @phpstan-param FormattedRecord $record + * @phpstan-param LogRecord $record */ - protected function write(array $record): void + protected function write(LogRecord $record): void { $this->hub->withScope(function (Scope $scope) use ($record): void { - if (isset($record['context']['extra']) && \is_array($record['context']['extra'])) { - foreach ($record['context']['extra'] as $key => $value) { + $context = $record->context; + + if (isset($context['extra']) && \is_array($context['extra'])) { + foreach ($context['extra'] as $key => $value) { $scope->setExtra((string) $key, $value); } } - if (isset($record['context']['tags']) && \is_array($record['context']['tags'])) { - foreach ($record['context']['tags'] as $key => $value) { + if (isset($context['tags']) && \is_array($context['tags'])) { + foreach ($context['tags'] as $key => $value) { $scope->setTag($key, $value); } } diff --git a/tests/Integration/Messenger/MonologHandlerDecoratorTest.php b/tests/Integration/Messenger/MonologHandlerDecoratorTest.php index e45faba..e919b03 100644 --- a/tests/Integration/Messenger/MonologHandlerDecoratorTest.php +++ b/tests/Integration/Messenger/MonologHandlerDecoratorTest.php @@ -4,7 +4,8 @@ namespace SentryMonologAdapter\Tests\Integration\Messenger; -use Monolog\Logger; +use Monolog\Level; +use Monolog\LogRecord; use PHPUnit\Framework\TestCase; use Sentry\ClientInterface; use Sentry\Event; @@ -16,14 +17,14 @@ class MonologHandlerDecoratorTest extends TestCase { /** - * @param array $record - * @param array $expectedExtra - * @param array $expectedTags + * @param LogRecord $record + * @param array $expectedExtra + * @param array $expectedTags * * @dataProvider handleDataProvider */ public function testHandle( - array $record, + LogRecord $record, array $expectedExtra, array $expectedTags ): void { @@ -55,12 +56,12 @@ public function handleDataProvider(): array { return [ [ - [ - 'message' => 'test', - 'level' => Logger::DEBUG, - 'level_name' => Logger::getLevelName(Logger::DEBUG), - 'channel' => 'channel.test', - 'context' => [ + new LogRecord( + new \DateTimeImmutable(), + 'channel.test', + Level::Debug, + 'test', + [ 'extra' => [ 'id' => 'test_id', 'message' => 'test_message' @@ -69,30 +70,30 @@ public function handleDataProvider(): array 'test_key' => 'test_value' ] ], - 'extra' => [] - ], + [] + ), [ 'id' => 'test_id', 'message' => 'test_message', 'monolog.channel' => 'channel.test', - 'monolog.level' => Logger::getLevelName(Logger::DEBUG), + 'monolog.level' => Level::Debug->getName(), ], [ 'test_key' => 'test_value' ] ], [ - [ - 'message' => 'test', - 'level' => Logger::DEBUG, - 'level_name' => Logger::getLevelName(Logger::DEBUG), - 'channel' => 'channel.test', - 'context' => [], - 'extra' => [] - ], + new LogRecord( + new \DateTimeImmutable(), + 'channel.test', + Level::Debug, + 'test', + [], + [] + ), [ 'monolog.channel' => 'channel.test', - 'monolog.level' => Logger::getLevelName(Logger::DEBUG), + 'monolog.level' => Level::Debug->getName(), ], [] ] From ee17d26efb9b76a607d85891a44d11883d8a0eb9 Mon Sep 17 00:00:00 2001 From: Vardan Date: Mon, 12 Feb 2024 14:18:57 +0200 Subject: [PATCH 02/13] make ubuntu latest --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9293b76..2040775 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,7 +7,7 @@ on: jobs: run: - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: From 9703840e13a875b4e07dbe6e1e38c898d3945822 Mon Sep 17 00:00:00 2001 From: Vardan Date: Mon, 12 Feb 2024 16:53:00 +0200 Subject: [PATCH 03/13] update phpstan --- composer.json | 4 ++-- .../SentryMonologAdapterExtension.php | 6 +++--- src/Monolog/Handler/MonologHandlerDecorator.php | 3 --- src/Processor/ExceptionProcessor.php | 10 +++++----- src/SentryMonologAdapterBundle.php | 1 - 5 files changed, 10 insertions(+), 14 deletions(-) diff --git a/composer.json b/composer.json index e83d36a..18f2119 100644 --- a/composer.json +++ b/composer.json @@ -34,8 +34,8 @@ "symfony/messenger": "^4.4 || ^5.0 || ^6.0 || ^7.0" }, "require-dev": { - "phpstan/phpstan": "0.12.*", - "squizlabs/php_codesniffer": "3.5.*", + "phpstan/phpstan": "1.10.*", + "squizlabs/php_codesniffer": "3.8.*", "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.0 || ^7.0", "symfony/yaml": "^4.4 || ^5.0 || ^6.0 || ^7.0" }, diff --git a/src/DependencyInjection/SentryMonologAdapterExtension.php b/src/DependencyInjection/SentryMonologAdapterExtension.php index 499f8ec..77f7b4b 100644 --- a/src/DependencyInjection/SentryMonologAdapterExtension.php +++ b/src/DependencyInjection/SentryMonologAdapterExtension.php @@ -12,7 +12,7 @@ class SentryMonologAdapterExtension extends Extension { /** - * @param array $configs + * @param array $configs * * {@inheritdoc} */ @@ -28,7 +28,7 @@ public function load(array $configs, ContainerBuilder $container): void } /** - * @param array $config + * @param array> $config */ private function loadMessengerLoggingMiddleware( array $config, @@ -55,7 +55,7 @@ private function loadMessengerLoggingMiddleware( } /** - * @param array $config + * @param array> $config */ private function loadMonologHandlerDecorator( array $config, diff --git a/src/Monolog/Handler/MonologHandlerDecorator.php b/src/Monolog/Handler/MonologHandlerDecorator.php index 0243289..30dbc91 100644 --- a/src/Monolog/Handler/MonologHandlerDecorator.php +++ b/src/Monolog/Handler/MonologHandlerDecorator.php @@ -12,9 +12,6 @@ use function Sentry\withScope; -/** - * @phpstan-import-type FormattedRecord from \Monolog\Handler\AbstractProcessingHandler - */ class MonologHandlerDecorator extends AbstractProcessingHandler { private Handler $sentryHandler; diff --git a/src/Processor/ExceptionProcessor.php b/src/Processor/ExceptionProcessor.php index 1345b2b..ec096f8 100644 --- a/src/Processor/ExceptionProcessor.php +++ b/src/Processor/ExceptionProcessor.php @@ -9,9 +9,9 @@ class ExceptionProcessor { /** - * @param array $record + * @param array $record * - * @return array[] + * @return array */ public function __invoke(array $record): array { @@ -36,10 +36,10 @@ public function __invoke(array $record): array /** * setExtra. * - * @param array[] $record - * @param array[] $parameters + * @param array> $record + * @param array $parameters * - * @return array[] + * @return array> */ private function setExtra(array $record, array $parameters): array { diff --git a/src/SentryMonologAdapterBundle.php b/src/SentryMonologAdapterBundle.php index 24f46d0..007d735 100644 --- a/src/SentryMonologAdapterBundle.php +++ b/src/SentryMonologAdapterBundle.php @@ -8,5 +8,4 @@ class SentryMonologAdapterBundle extends Bundle { - } From 066e9fd57455d73a9321ebb8c1a21d91a17055d2 Mon Sep 17 00:00:00 2001 From: Vardan Date: Tue, 13 Feb 2024 12:06:12 +0200 Subject: [PATCH 04/13] rollback ci --- .github/workflows/ci.yaml | 40 +++++++++++++++++++++++---------------- composer.json | 4 ++-- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2040775..15a3f82 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,27 +16,35 @@ jobs: - '8.0' - '8.1' - '8.2' + symfony-versions: ['none'] coverage: ['none'] - symfony-versions: - - '4.4.*' - - '5.3.*' - - '5.4.*' - - '6.0.*' - - '7.0.*' - exclude: - - php: '7.4' - symfony-versions: '6.0.*' - - php: '7.4' - symfony-versions: '7.0.*' - - php: '8.0' - symfony-versions: '7.0.*' - - php: '8.1' - symfony-versions: '7.0.*' include: + - symfony-versions: '4.4.*' + php: '7.4' + - symfony-versions: '4.4.*' + php: '8.0' + - symfony-versions: '4.4.*' + php: '8.1' + - symfony-versions: '5.3.*' + php: '7.4' + - symfony-versions: '5.3.*' + php: '8.0' + - symfony-versions: '5.3.*' + php: '8.1' + - symfony-versions: '5.4.*' + php: '8.0' + - symfony-versions: '5.4.*' + php: '8.1' + - symfony-versions: '6.0.*' + php: '8.0' + - symfony-versions: '6.0.*' + php: '8.1' + - symfony-versions: '7.0.*' + php: '8.2' - description: 'Log Code Coverage' + symfony-versions: 'none' php: '8.2' coverage: 'xdebug' - symfony-versions: '^7.0' name: PHP ${{ matrix.php }} Symfony ${{ matrix.symfony-versions }} ${{ matrix.description }} steps: diff --git a/composer.json b/composer.json index 18f2119..bb53252 100644 --- a/composer.json +++ b/composer.json @@ -34,8 +34,8 @@ "symfony/messenger": "^4.4 || ^5.0 || ^6.0 || ^7.0" }, "require-dev": { - "phpstan/phpstan": "1.10.*", - "squizlabs/php_codesniffer": "3.8.*", + "phpstan/phpstan": "^1.4", + "squizlabs/php_codesniffer": "^3.6", "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.0 || ^7.0", "symfony/yaml": "^4.4 || ^5.0 || ^6.0 || ^7.0" }, From d9c27db0fe7b58cc8757b2e58d6d267ba9d26404 Mon Sep 17 00:00:00 2001 From: Vardan Date: Wed, 14 Feb 2024 18:11:51 +0200 Subject: [PATCH 05/13] change back Logger::getLevelName(Logger::DEBUG) --- tests/Integration/Messenger/MonologHandlerDecoratorTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/Integration/Messenger/MonologHandlerDecoratorTest.php b/tests/Integration/Messenger/MonologHandlerDecoratorTest.php index e919b03..6d2ea43 100644 --- a/tests/Integration/Messenger/MonologHandlerDecoratorTest.php +++ b/tests/Integration/Messenger/MonologHandlerDecoratorTest.php @@ -4,7 +4,7 @@ namespace SentryMonologAdapter\Tests\Integration\Messenger; -use Monolog\Level; +use Monolog\Logger; use Monolog\LogRecord; use PHPUnit\Framework\TestCase; use Sentry\ClientInterface; @@ -76,7 +76,7 @@ public function handleDataProvider(): array 'id' => 'test_id', 'message' => 'test_message', 'monolog.channel' => 'channel.test', - 'monolog.level' => Level::Debug->getName(), + 'monolog.level' => Logger::getLevelName(Logger::DEBUG), ], [ 'test_key' => 'test_value' @@ -93,7 +93,7 @@ public function handleDataProvider(): array ), [ 'monolog.channel' => 'channel.test', - 'monolog.level' => Level::Debug->getName(), + 'monolog.level' => Logger::getLevelName(Logger::DEBUG), ], [] ] From 6212a9e4e1eba095ecc8a1f0790a05af0f0024f5 Mon Sep 17 00:00:00 2001 From: Vardan Date: Wed, 14 Feb 2024 20:11:49 +0200 Subject: [PATCH 06/13] change all back --- .github/workflows/ci.yaml | 5 +-- composer.json | 14 +++---- .../SentryMonologAdapterExtension.php | 6 +-- .../Handler/MonologHandlerDecorator.php | 18 ++++---- src/Processor/ExceptionProcessor.php | 10 ++--- src/SentryMonologAdapterBundle.php | 1 + .../Messenger/MonologHandlerDecoratorTest.php | 41 +++++++++---------- 7 files changed, 46 insertions(+), 49 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 15a3f82..47ded72 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -15,7 +15,6 @@ jobs: - '7.4' - '8.0' - '8.1' - - '8.2' symfony-versions: ['none'] coverage: ['none'] include: @@ -39,11 +38,9 @@ jobs: php: '8.0' - symfony-versions: '6.0.*' php: '8.1' - - symfony-versions: '7.0.*' - php: '8.2' - description: 'Log Code Coverage' symfony-versions: 'none' - php: '8.2' + php: '8.1' coverage: 'xdebug' name: PHP ${{ matrix.php }} Symfony ${{ matrix.symfony-versions }} ${{ matrix.description }} diff --git a/composer.json b/composer.json index bb53252..a581a41 100644 --- a/composer.json +++ b/composer.json @@ -27,17 +27,17 @@ ], "require": { "php": "^7.4 || ^8.0", - "symfony/console": "^4.4 || ^5.0 || ^6.0 || ^7.0", - "symfony/dotenv": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/console": "^4.4 || ^5.0 || ^6.0", + "symfony/dotenv": "^4.4 || ^5.0 || ^6.0", "symfony/monolog-bundle": "^3.0", "sentry/sentry-symfony": "^4.0", - "symfony/messenger": "^4.4 || ^5.0 || ^6.0 || ^7.0" + "symfony/messenger": "^4.4 || ^5.0 || ^6.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "squizlabs/php_codesniffer": "^3.6", - "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.0 || ^7.0", - "symfony/yaml": "^4.4 || ^5.0 || ^6.0 || ^7.0" + "phpstan/phpstan": "0.12.*", + "squizlabs/php_codesniffer": "3.5.*", + "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.0", + "symfony/yaml": "^4.4 || ^5.0 || ^6.0" }, "autoload": { "psr-4": { diff --git a/src/DependencyInjection/SentryMonologAdapterExtension.php b/src/DependencyInjection/SentryMonologAdapterExtension.php index 77f7b4b..499f8ec 100644 --- a/src/DependencyInjection/SentryMonologAdapterExtension.php +++ b/src/DependencyInjection/SentryMonologAdapterExtension.php @@ -12,7 +12,7 @@ class SentryMonologAdapterExtension extends Extension { /** - * @param array $configs + * @param array $configs * * {@inheritdoc} */ @@ -28,7 +28,7 @@ public function load(array $configs, ContainerBuilder $container): void } /** - * @param array> $config + * @param array $config */ private function loadMessengerLoggingMiddleware( array $config, @@ -55,7 +55,7 @@ private function loadMessengerLoggingMiddleware( } /** - * @param array> $config + * @param array $config */ private function loadMonologHandlerDecorator( array $config, diff --git a/src/Monolog/Handler/MonologHandlerDecorator.php b/src/Monolog/Handler/MonologHandlerDecorator.php index 30dbc91..a963148 100644 --- a/src/Monolog/Handler/MonologHandlerDecorator.php +++ b/src/Monolog/Handler/MonologHandlerDecorator.php @@ -5,13 +5,15 @@ namespace SentryMonologAdapter\Monolog\Handler; use Monolog\Handler\AbstractProcessingHandler; -use Monolog\LogRecord; use Sentry\Monolog\Handler; use Sentry\State\HubInterface; use Sentry\State\Scope; use function Sentry\withScope; +/** + * @phpstan-import-type FormattedRecord from \Monolog\Handler\AbstractProcessingHandler + */ class MonologHandlerDecorator extends AbstractProcessingHandler { private Handler $sentryHandler; @@ -25,21 +27,19 @@ public function __construct(HubInterface $hub, Handler $sentryHandler) } /** - * @phpstan-param LogRecord $record + * @phpstan-param FormattedRecord $record */ - protected function write(LogRecord $record): void + protected function write(array $record): void { $this->hub->withScope(function (Scope $scope) use ($record): void { - $context = $record->context; - - if (isset($context['extra']) && \is_array($context['extra'])) { - foreach ($context['extra'] as $key => $value) { + if (isset($record['context']['extra']) && \is_array($record['context']['extra'])) { + foreach ($record['context']['extra'] as $key => $value) { $scope->setExtra((string) $key, $value); } } - if (isset($context['tags']) && \is_array($context['tags'])) { - foreach ($context['tags'] as $key => $value) { + if (isset($record['context']['tags']) && \is_array($record['context']['tags'])) { + foreach ($record['context']['tags'] as $key => $value) { $scope->setTag($key, $value); } } diff --git a/src/Processor/ExceptionProcessor.php b/src/Processor/ExceptionProcessor.php index ec096f8..1345b2b 100644 --- a/src/Processor/ExceptionProcessor.php +++ b/src/Processor/ExceptionProcessor.php @@ -9,9 +9,9 @@ class ExceptionProcessor { /** - * @param array $record + * @param array $record * - * @return array + * @return array[] */ public function __invoke(array $record): array { @@ -36,10 +36,10 @@ public function __invoke(array $record): array /** * setExtra. * - * @param array> $record - * @param array $parameters + * @param array[] $record + * @param array[] $parameters * - * @return array> + * @return array[] */ private function setExtra(array $record, array $parameters): array { diff --git a/src/SentryMonologAdapterBundle.php b/src/SentryMonologAdapterBundle.php index 007d735..24f46d0 100644 --- a/src/SentryMonologAdapterBundle.php +++ b/src/SentryMonologAdapterBundle.php @@ -8,4 +8,5 @@ class SentryMonologAdapterBundle extends Bundle { + } diff --git a/tests/Integration/Messenger/MonologHandlerDecoratorTest.php b/tests/Integration/Messenger/MonologHandlerDecoratorTest.php index 6d2ea43..e45faba 100644 --- a/tests/Integration/Messenger/MonologHandlerDecoratorTest.php +++ b/tests/Integration/Messenger/MonologHandlerDecoratorTest.php @@ -5,7 +5,6 @@ namespace SentryMonologAdapter\Tests\Integration\Messenger; use Monolog\Logger; -use Monolog\LogRecord; use PHPUnit\Framework\TestCase; use Sentry\ClientInterface; use Sentry\Event; @@ -17,14 +16,14 @@ class MonologHandlerDecoratorTest extends TestCase { /** - * @param LogRecord $record - * @param array $expectedExtra - * @param array $expectedTags + * @param array $record + * @param array $expectedExtra + * @param array $expectedTags * * @dataProvider handleDataProvider */ public function testHandle( - LogRecord $record, + array $record, array $expectedExtra, array $expectedTags ): void { @@ -56,12 +55,12 @@ public function handleDataProvider(): array { return [ [ - new LogRecord( - new \DateTimeImmutable(), - 'channel.test', - Level::Debug, - 'test', - [ + [ + 'message' => 'test', + 'level' => Logger::DEBUG, + 'level_name' => Logger::getLevelName(Logger::DEBUG), + 'channel' => 'channel.test', + 'context' => [ 'extra' => [ 'id' => 'test_id', 'message' => 'test_message' @@ -70,8 +69,8 @@ public function handleDataProvider(): array 'test_key' => 'test_value' ] ], - [] - ), + 'extra' => [] + ], [ 'id' => 'test_id', 'message' => 'test_message', @@ -83,14 +82,14 @@ public function handleDataProvider(): array ] ], [ - new LogRecord( - new \DateTimeImmutable(), - 'channel.test', - Level::Debug, - 'test', - [], - [] - ), + [ + 'message' => 'test', + 'level' => Logger::DEBUG, + 'level_name' => Logger::getLevelName(Logger::DEBUG), + 'channel' => 'channel.test', + 'context' => [], + 'extra' => [] + ], [ 'monolog.channel' => 'channel.test', 'monolog.level' => Logger::getLevelName(Logger::DEBUG), From 86b52d1ca915266ce907b5574fdc7d983aa4e887 Mon Sep 17 00:00:00 2001 From: Vardan Date: Wed, 14 Feb 2024 21:37:17 +0200 Subject: [PATCH 07/13] set symfony/monolog-bundle version --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index a581a41..e8b8745 100644 --- a/composer.json +++ b/composer.json @@ -29,7 +29,7 @@ "php": "^7.4 || ^8.0", "symfony/console": "^4.4 || ^5.0 || ^6.0", "symfony/dotenv": "^4.4 || ^5.0 || ^6.0", - "symfony/monolog-bundle": "^3.0", + "symfony/monolog-bundle": "<3.8", "sentry/sentry-symfony": "^4.0", "symfony/messenger": "^4.4 || ^5.0 || ^6.0" }, From 7c3ab4d71cbb89e407c098aecdc7f41722d5da16 Mon Sep 17 00:00:00 2001 From: Vardan Date: Wed, 14 Feb 2024 22:19:43 +0200 Subject: [PATCH 08/13] add coverage --- .github/workflows/ci.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 47ded72..16d7836 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,24 +19,34 @@ jobs: coverage: ['none'] include: - symfony-versions: '4.4.*' + coverage: 'none' php: '7.4' - symfony-versions: '4.4.*' + coverage: 'none' php: '8.0' - symfony-versions: '4.4.*' + coverage: 'none' php: '8.1' - symfony-versions: '5.3.*' + coverage: 'none' php: '7.4' - symfony-versions: '5.3.*' + coverage: 'none' php: '8.0' - symfony-versions: '5.3.*' + coverage: 'none' php: '8.1' - symfony-versions: '5.4.*' + coverage: 'none' php: '8.0' - symfony-versions: '5.4.*' + coverage: 'none' php: '8.1' - symfony-versions: '6.0.*' + coverage: 'none' php: '8.0' - symfony-versions: '6.0.*' + coverage: 'none' php: '8.1' - description: 'Log Code Coverage' symfony-versions: 'none' From aa15327f2adcedae6392b53c4988bbd26d207b5b Mon Sep 17 00:00:00 2001 From: Vardan Date: Thu, 15 Feb 2024 16:00:37 +0200 Subject: [PATCH 09/13] add doctrine/dbal --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index e8b8745..c0166fe 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,8 @@ "symfony/dotenv": "^4.4 || ^5.0 || ^6.0", "symfony/monolog-bundle": "<3.8", "sentry/sentry-symfony": "^4.0", - "symfony/messenger": "^4.4 || ^5.0 || ^6.0" + "symfony/messenger": "^4.4 || ^5.0 || ^6.0", + "doctrine/dbal": "^3.0" }, "require-dev": { "phpstan/phpstan": "0.12.*", From 2e5bdf7b73013e63273c0ed0c4ddb2e15e63e230 Mon Sep 17 00:00:00 2001 From: Vardan Date: Fri, 16 Feb 2024 12:03:06 +0200 Subject: [PATCH 10/13] set phpunit v9.6.13 --- phpunit.xml.dist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpunit.xml.dist b/phpunit.xml.dist index c522b28..4c8a6db 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -12,7 +12,7 @@ - + From 64a7c53fe28794cac5c3b0644c6f7c192d72da15 Mon Sep 17 00:00:00 2001 From: Vardan Date: Fri, 16 Feb 2024 12:11:00 +0200 Subject: [PATCH 11/13] add symfony v7 --- .github/workflows/ci.yaml | 49 ++++++------------- .github/workflows/gitleaks.yaml | 4 +- composer.json | 14 +++--- .../SentryMonologAdapterExtension.php | 6 +-- .../Handler/MonologHandlerDecorator.php | 18 +++---- src/Processor/ExceptionProcessor.php | 10 ++-- src/SentryMonologAdapterBundle.php | 1 - .../Messenger/MonologHandlerDecoratorTest.php | 42 ++++++++-------- 8 files changed, 64 insertions(+), 80 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 16d7836..d498fa5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,46 +12,29 @@ jobs: fail-fast: false matrix: php: - - '7.4' - - '8.0' - '8.1' - symfony-versions: ['none'] + - '8.2' coverage: ['none'] + symfony-versions: + - '5.4.*' + - '6.0.*' + - '6.1.*' + - '6.2.*' + - '7.0.*' + exclude: + - php: '8.1' + symfony-versions: '7.0.*' include: - - symfony-versions: '4.4.*' + - php: '8.1' coverage: 'none' - php: '7.4' - - symfony-versions: '4.4.*' - coverage: 'none' - php: '8.0' - - symfony-versions: '4.4.*' - coverage: 'none' - php: '8.1' - - symfony-versions: '5.3.*' - coverage: 'none' - php: '7.4' - - symfony-versions: '5.3.*' - coverage: 'none' - php: '8.0' - - symfony-versions: '5.3.*' - coverage: 'none' - php: '8.1' - - symfony-versions: '5.4.*' - coverage: 'none' - php: '8.0' - - symfony-versions: '5.4.*' - coverage: 'none' - php: '8.1' - - symfony-versions: '6.0.*' - coverage: 'none' - php: '8.0' - - symfony-versions: '6.0.*' + symfony-versions: 'none' + - php: '8.2' coverage: 'none' - php: '8.1' - - description: 'Log Code Coverage' symfony-versions: 'none' - php: '8.1' + - description: 'Log Code Coverage' + php: '8.2' coverage: 'xdebug' + symfony-versions: 'none' name: PHP ${{ matrix.php }} Symfony ${{ matrix.symfony-versions }} ${{ matrix.description }} steps: diff --git a/.github/workflows/gitleaks.yaml b/.github/workflows/gitleaks.yaml index be1b555..d92e6a9 100644 --- a/.github/workflows/gitleaks.yaml +++ b/.github/workflows/gitleaks.yaml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v1 + uses: actions/checkout@v3 - name: Run gitleaks - uses: zricethezav/gitleaks-action@master \ No newline at end of file + uses: gitleaks/gitleaks-action@v2 \ No newline at end of file diff --git a/composer.json b/composer.json index c0166fe..049ab54 100644 --- a/composer.json +++ b/composer.json @@ -27,18 +27,18 @@ ], "require": { "php": "^7.4 || ^8.0", - "symfony/console": "^4.4 || ^5.0 || ^6.0", - "symfony/dotenv": "^4.4 || ^5.0 || ^6.0", - "symfony/monolog-bundle": "<3.8", + "symfony/console": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/dotenv": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/monolog-bundle": "^3.0", "sentry/sentry-symfony": "^4.0", - "symfony/messenger": "^4.4 || ^5.0 || ^6.0", + "symfony/messenger": "^4.4 || ^5.0 || ^6.0 || ^7.0", "doctrine/dbal": "^3.0" }, "require-dev": { - "phpstan/phpstan": "0.12.*", + "phpstan/phpstan": "^1.3", "squizlabs/php_codesniffer": "3.5.*", - "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.0", - "symfony/yaml": "^4.4 || ^5.0 || ^6.0" + "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/yaml": "^4.4 || ^5.0 || ^6.0 || ^7.0" }, "autoload": { "psr-4": { diff --git a/src/DependencyInjection/SentryMonologAdapterExtension.php b/src/DependencyInjection/SentryMonologAdapterExtension.php index 499f8ec..77f7b4b 100644 --- a/src/DependencyInjection/SentryMonologAdapterExtension.php +++ b/src/DependencyInjection/SentryMonologAdapterExtension.php @@ -12,7 +12,7 @@ class SentryMonologAdapterExtension extends Extension { /** - * @param array $configs + * @param array $configs * * {@inheritdoc} */ @@ -28,7 +28,7 @@ public function load(array $configs, ContainerBuilder $container): void } /** - * @param array $config + * @param array> $config */ private function loadMessengerLoggingMiddleware( array $config, @@ -55,7 +55,7 @@ private function loadMessengerLoggingMiddleware( } /** - * @param array $config + * @param array> $config */ private function loadMonologHandlerDecorator( array $config, diff --git a/src/Monolog/Handler/MonologHandlerDecorator.php b/src/Monolog/Handler/MonologHandlerDecorator.php index a963148..30dbc91 100644 --- a/src/Monolog/Handler/MonologHandlerDecorator.php +++ b/src/Monolog/Handler/MonologHandlerDecorator.php @@ -5,15 +5,13 @@ namespace SentryMonologAdapter\Monolog\Handler; use Monolog\Handler\AbstractProcessingHandler; +use Monolog\LogRecord; use Sentry\Monolog\Handler; use Sentry\State\HubInterface; use Sentry\State\Scope; use function Sentry\withScope; -/** - * @phpstan-import-type FormattedRecord from \Monolog\Handler\AbstractProcessingHandler - */ class MonologHandlerDecorator extends AbstractProcessingHandler { private Handler $sentryHandler; @@ -27,19 +25,21 @@ public function __construct(HubInterface $hub, Handler $sentryHandler) } /** - * @phpstan-param FormattedRecord $record + * @phpstan-param LogRecord $record */ - protected function write(array $record): void + protected function write(LogRecord $record): void { $this->hub->withScope(function (Scope $scope) use ($record): void { - if (isset($record['context']['extra']) && \is_array($record['context']['extra'])) { - foreach ($record['context']['extra'] as $key => $value) { + $context = $record->context; + + if (isset($context['extra']) && \is_array($context['extra'])) { + foreach ($context['extra'] as $key => $value) { $scope->setExtra((string) $key, $value); } } - if (isset($record['context']['tags']) && \is_array($record['context']['tags'])) { - foreach ($record['context']['tags'] as $key => $value) { + if (isset($context['tags']) && \is_array($context['tags'])) { + foreach ($context['tags'] as $key => $value) { $scope->setTag($key, $value); } } diff --git a/src/Processor/ExceptionProcessor.php b/src/Processor/ExceptionProcessor.php index 1345b2b..ec096f8 100644 --- a/src/Processor/ExceptionProcessor.php +++ b/src/Processor/ExceptionProcessor.php @@ -9,9 +9,9 @@ class ExceptionProcessor { /** - * @param array $record + * @param array $record * - * @return array[] + * @return array */ public function __invoke(array $record): array { @@ -36,10 +36,10 @@ public function __invoke(array $record): array /** * setExtra. * - * @param array[] $record - * @param array[] $parameters + * @param array> $record + * @param array $parameters * - * @return array[] + * @return array> */ private function setExtra(array $record, array $parameters): array { diff --git a/src/SentryMonologAdapterBundle.php b/src/SentryMonologAdapterBundle.php index 24f46d0..007d735 100644 --- a/src/SentryMonologAdapterBundle.php +++ b/src/SentryMonologAdapterBundle.php @@ -8,5 +8,4 @@ class SentryMonologAdapterBundle extends Bundle { - } diff --git a/tests/Integration/Messenger/MonologHandlerDecoratorTest.php b/tests/Integration/Messenger/MonologHandlerDecoratorTest.php index e45faba..fc00497 100644 --- a/tests/Integration/Messenger/MonologHandlerDecoratorTest.php +++ b/tests/Integration/Messenger/MonologHandlerDecoratorTest.php @@ -4,7 +4,9 @@ namespace SentryMonologAdapter\Tests\Integration\Messenger; +use Monolog\Level; use Monolog\Logger; +use Monolog\LogRecord; use PHPUnit\Framework\TestCase; use Sentry\ClientInterface; use Sentry\Event; @@ -16,14 +18,14 @@ class MonologHandlerDecoratorTest extends TestCase { /** - * @param array $record - * @param array $expectedExtra - * @param array $expectedTags + * @param LogRecord $record + * @param array $expectedExtra + * @param array $expectedTags * * @dataProvider handleDataProvider */ public function testHandle( - array $record, + LogRecord $record, array $expectedExtra, array $expectedTags ): void { @@ -55,12 +57,12 @@ public function handleDataProvider(): array { return [ [ - [ - 'message' => 'test', - 'level' => Logger::DEBUG, - 'level_name' => Logger::getLevelName(Logger::DEBUG), - 'channel' => 'channel.test', - 'context' => [ + new LogRecord( + new \DateTimeImmutable(), + 'channel.test', + Level::Debug, + 'test', + [ 'extra' => [ 'id' => 'test_id', 'message' => 'test_message' @@ -69,8 +71,8 @@ public function handleDataProvider(): array 'test_key' => 'test_value' ] ], - 'extra' => [] - ], + [] + ), [ 'id' => 'test_id', 'message' => 'test_message', @@ -82,14 +84,14 @@ public function handleDataProvider(): array ] ], [ - [ - 'message' => 'test', - 'level' => Logger::DEBUG, - 'level_name' => Logger::getLevelName(Logger::DEBUG), - 'channel' => 'channel.test', - 'context' => [], - 'extra' => [] - ], + new LogRecord( + new \DateTimeImmutable(), + 'channel.test', + Level::Debug, + 'test', + [], + [] + ), [ 'monolog.channel' => 'channel.test', 'monolog.level' => Logger::getLevelName(Logger::DEBUG), From 3f0d2103ac42a189300caac9fb712a62915a35e4 Mon Sep 17 00:00:00 2001 From: Vardan Date: Thu, 29 Feb 2024 11:33:32 +0200 Subject: [PATCH 12/13] remove gitleaks action --- .github/workflows/gitleaks.yaml | 16 ---------------- composer.json | 1 + 2 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 .github/workflows/gitleaks.yaml diff --git a/.github/workflows/gitleaks.yaml b/.github/workflows/gitleaks.yaml deleted file mode 100644 index d92e6a9..0000000 --- a/.github/workflows/gitleaks.yaml +++ /dev/null @@ -1,16 +0,0 @@ -name: gitleaks - -on: - pull_request: - push: - branches: [ master, develop ] - -jobs: - gitleaks: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Run gitleaks - uses: gitleaks/gitleaks-action@v2 \ No newline at end of file diff --git a/composer.json b/composer.json index 049ab54..bc8c3ca 100644 --- a/composer.json +++ b/composer.json @@ -3,6 +3,7 @@ "description": "Sentry monolog logging bundle", "homepage": "https://github.com/MacPaw/sentry-monolog-adapter", "type": "symfony-bundle", + "version": "1.0.0", "keywords": [ "MacPaw", "Symfony", From 4a30a75ce03f4b4a4f9bf0014cfd9dbbd76ec0e9 Mon Sep 17 00:00:00 2001 From: Vardan Date: Thu, 29 Feb 2024 17:10:13 +0200 Subject: [PATCH 13/13] remove old versions from composer json --- composer.json | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index bc8c3ca..e2427d1 100644 --- a/composer.json +++ b/composer.json @@ -27,19 +27,18 @@ } ], "require": { - "php": "^7.4 || ^8.0", - "symfony/console": "^4.4 || ^5.0 || ^6.0 || ^7.0", - "symfony/dotenv": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "php": "^8.1", + "symfony/console": "^5.4 || ^6.0 || ^7.0", + "symfony/dotenv": "^5.4 || ^6.0 || ^7.0", "symfony/monolog-bundle": "^3.0", "sentry/sentry-symfony": "^4.0", - "symfony/messenger": "^4.4 || ^5.0 || ^6.0 || ^7.0", - "doctrine/dbal": "^3.0" + "symfony/messenger": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { "phpstan/phpstan": "^1.3", "squizlabs/php_codesniffer": "3.5.*", - "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.0 || ^7.0", - "symfony/yaml": "^4.4 || ^5.0 || ^6.0 || ^7.0" + "symfony/phpunit-bridge": "^5.4 || ^6.0 || ^7.0", + "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, "autoload": { "psr-4": {