Skip to content

Commit

Permalink
Merge pull request #49 from WyriHaximus/renovate/monolog-monolog-3.x
Browse files Browse the repository at this point in the history
Update dependency monolog/monolog to v3
  • Loading branch information
WyriHaximus committed Aug 2, 2023
2 parents 136e088 + 4cd123a commit c46766f
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 54 deletions.
2 changes: 1 addition & 1 deletion LICENSE
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2017 Cees-Jan Kiewiet
Copyright (c) 2023 Cees-Jan Kiewiet

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -12,7 +12,7 @@
To install via [Composer](http://getcomposer.org/), use the command below, it will automatically detect the latest version and bind it with `^`.

```
composer require wyrihaximus/monolog-formatted-psr-handler
composer require wyrihaximus/monolog-formatted-psr-handler
```

## Difference with Monolog's PsrHandler ##
Expand All @@ -34,7 +34,7 @@ Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

## License ##

Copyright 2017 [Cees-Jan Kiewiet](http://wyrihaximus.net/)
Copyright 2023 [Cees-Jan Kiewiet](http://wyrihaximus.net/)

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Expand Up @@ -10,7 +10,7 @@
],
"require": {
"php": "^8.2",
"monolog/monolog": "^2.9.1",
"monolog/monolog": "^3.4.0",
"psr/log": "^2",
"thecodingmachine/safe": "^2.5",
"wyrihaximus/psr-3-utilities": "^2.1"
Expand Down
39 changes: 19 additions & 20 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 7 additions & 9 deletions src/FormattedPsrHandler.php
Expand Up @@ -5,7 +5,8 @@
namespace WyriHaximus\Monolog\FormattedPsrHandler;

use Monolog\Handler\AbstractProcessingHandler;
use Monolog\Logger;
use Monolog\Level;
use Monolog\LogRecord;
use Psr\Log\LoggerInterface;

use function strtolower;
Expand All @@ -14,16 +15,13 @@
final class FormattedPsrHandler extends AbstractProcessingHandler
{
/** @phpstan-ignore-next-line */
public function __construct(protected LoggerInterface $logger, int|string $level = Logger::DEBUG, bool $bubble = true)
public function __construct(protected LoggerInterface $logger, int|string|Level $level = Level::Debug, bool $bubble = true)
{
/** @psalm-suppress ArgumentTypeCoercion */
parent::__construct($level, $bubble);
}

/**
* {@inheritDoc}
*/
protected function write(array $record): void
protected function write(LogRecord $record): void
{
/** @psalm-suppress InvalidArgument */
if (! $this->isHandling($record)) {
Expand All @@ -34,9 +32,9 @@ protected function write(array $record): void
}

$this->logger->log(
strtolower($record['level_name']),
formatValue($record['formatted'] ?? $record['message']),
$record['context'],
strtolower($record->level->name),
formatValue($record->formatted ?? $record->message),
$record->context,
);
}
}
41 changes: 20 additions & 21 deletions tests/FormattedPsrHandlerTest.php
Expand Up @@ -5,7 +5,8 @@
namespace WyriHaximus\Tests\Monolog\FormattedPsrHandler;

use DateTimeInterface;
use Monolog\Logger;
use Monolog\Level;
use Monolog\LogRecord;
use Prophecy\Argument;
use Psr\Log\LoggerInterface;
use Safe\DateTimeImmutable;
Expand All @@ -19,15 +20,14 @@ final class FormattedPsrHandlerTest extends TestCase
public function formatted(): void
{
$now = new DateTimeImmutable('now');
$record = [
'channel' => 'formatted-psr-handler',
'datetime' => $now,
'level' => Logger::DEBUG,
'level_name' => 'DEBUG',
'message' => 'message',
'context' => [],
'extra' => [],
];
$record = new LogRecord(
channel: 'formatted-psr-handler',
datetime: $now,
level: Level::Debug,
message: 'message',
context: [],
extra: [],
);
$message = '[' . $now->format(DateTimeInterface::ATOM) . '] formatted-psr-handler.DEBUG: message [] []' . "\n";
$logger = $this->prophesize(LoggerInterface::class);
$logger->log('debug', $message, [])->shouldBeCalled();
Expand All @@ -42,22 +42,21 @@ public function notHandled(): void
$logger = $this->prophesize(LoggerInterface::class);
$logger->log(Argument::type('string'), Argument::type('array'), Argument::type('array'))->shouldNotBeCalled();

$formattedLogger = new FormattedPsrHandler($logger->reveal(), Logger::EMERGENCY);
$formattedLogger->handle([
'channel' => 'formatted-psr-handler',
'datetime' => new DateTimeImmutable('now'),
'level' => Logger::DEBUG,
'level_name' => 'DEBUG',
'message' => 'message',
'context' => [],
'extra' => [],
]);
$formattedLogger = new FormattedPsrHandler($logger->reveal(), Level::Emergency->value);
$formattedLogger->handle(new LogRecord(
channel: 'formatted-psr-handler',
datetime: new DateTimeImmutable('now'),
level: Level::Debug,
message: 'message',
context: [],
extra: [],
));
}

/** @test */
public function bubble(): void
{
$formattedLogger = new FormattedPsrHandler($this->prophesize(LoggerInterface::class)->reveal(), Logger::EMERGENCY);
$formattedLogger = new FormattedPsrHandler($this->prophesize(LoggerInterface::class)->reveal(), Level::Emergency->value);
self::assertTrue($formattedLogger->getBubble());
}
}

0 comments on commit c46766f

Please sign in to comment.