Skip to content

Commit

Permalink
LoggerBootloader will register roadrunner app logger handler automati…
Browse files Browse the repository at this point in the history
…cally after registering it (#61)
  • Loading branch information
butschster committed Feb 20, 2023
1 parent 263dc77 commit 9f411f0
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 44 deletions.
45 changes: 1 addition & 44 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1081,59 +1081,16 @@ Full example Echo GRPC service you can find [here](https://github.com/spiral/roa
------

### Logger
Logger provides a simple way to send log messages to RoadRunner.

## Configuration

You can register `Spiral\RoadRunnerBridge\Logger\Handler` in `app/config/monolog.php` config:

```php
<?php

declare(strict_types=1);

use Spiral\RoadRunnerBridge\Logger\Handler;

return [
//...

'handlers' => [
'roadrunner' => [
Handler::class,
// or
new Autowire(Handler::class, ['formatter' => "%message% foo"]),
]
]
];
```
Logger provides a simple way to send log messages to RoadRunner.

Also you can define a default message format in `.env`
```dotenv
LOGGER_FORMAT=%message% foo
```

Handler registration example in a custom bootloader
```PHP
use Spiral\Boot\Bootloader;
use Spiral\Monolog\Bootloader\MonologBootloader;
use Spiral\RoadRunnerBridge\Logger\Handler;

final class SomeBootloader extends Bootloader
{
public function init(MonologBootloader $monolog, Handler $handler): void
{
$monolog->addHandler($handler);
}
}

```

## Usage
```PHP
<?php

declare(strict_types=1);

use Psr\Log\LoggerInterface;
use Spiral\Router\Annotation\Route;

Expand Down
6 changes: 6 additions & 0 deletions src/Bootloader/LoggerBootloader.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
use Spiral\Boot\Bootloader\Bootloader;
use Spiral\Boot\EnvironmentInterface;
use RoadRunner\Logger\Logger;
use Spiral\Monolog\Bootloader\MonologBootloader;
use Spiral\RoadRunnerBridge\Logger\Handler;
use Spiral\RoadRunnerBridge\RoadRunnerMode;

Expand All @@ -21,6 +22,11 @@ final class LoggerBootloader extends Bootloader
Handler::class => [self::class, 'initHandler'],
];

public function init(MonologBootloader $bootloader, Handler $handler): void
{
$bootloader->addHandler('roadrunner', $handler);
}

private function initHandler(Logger $logger, RoadRunnerMode $mode, EnvironmentInterface $env): Handler
{
$fallbackHandler = $mode === RoadRunnerMode::Unknown ? new ErrorLogHandler() : null;
Expand Down
9 changes: 9 additions & 0 deletions tests/src/Bootloader/LoggerBootloaderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

namespace Spiral\Tests\Bootloader;

use Spiral\Monolog\Config\MonologConfig;
use Spiral\RoadRunnerBridge\Logger\Handler;
use Spiral\Tests\TestCase;

Expand All @@ -13,4 +14,12 @@ public function testHandlerBinding(): void
{
$this->assertContainerBoundAsSingleton(Handler::class, Handler::class);
}

public function testHandlerIsRegisteredInMonolog(): void
{
$config = $this->getConfig(MonologConfig::CONFIG);

$this->assertArrayHasKey('roadrunner', $config['handlers']);
$this->assertInstanceOf(Handler::class, $config['handlers']['roadrunner'][0]);
}
}

0 comments on commit 9f411f0

Please sign in to comment.