spiral / roadrunner-bridge

🌉 RoadRunner bridge to Spiral Framework
https://spiral.dev/docs/packages-roadrunner-bridge
MIT License
13 stars 6 forks source link

Add roadrunner logger handler #42

Closed meekstellar closed 1 year ago

meekstellar commented 1 year ago
Q A
New feature? ✔️

Added RoadRunner logger handler

// First, you need to register LoggerBootloader in App.php

use Spiral\RoadRunnerBridge\Bootloader\LoggerBootloader;

protected const LOAD = [
     // ...
     LoggerBootloader::class
];

Handler registration example

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 example

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

class HomeController
{
    #[Route(route: '/', name: 'home', methods: ['GET'])]
    public function index(LoggerInterface $logger): string
    {
        $logger->warning('Warning message');
        $logger->error('Error message');
        $logger->debug('Debug message');
        $logger->critical("Critical message");
        $logger->info('Info message');
        $logger->emergency("Emergency message");
    }
}

// In RoadRunner... image

config/monolog.php example

use Spiral\RoadRunnerBridge\Logger\Handler;

return [
   'handlers' => [
       'default' => [
           Handler::class,
           // or
           new Autowire(Handler::class, ['formatter' => "%message% foo"]),
           // or
           'my-handler'
       ]
   ]
];

You can define default message format in .env

LOGGER_FORMAT="%message% foo"