Laravel Tap Formatter: где мне отформатировать сообщение? - PullRequest
0 голосов
/ 31 октября 2019

В моем приложении laravel необходимо отформатировать сообщение, которое нужно отправить в slack. Поэтому я установил свободный канал регистрации в config/logging.php:

'slack'         => [
    'driver'   => 'slack',
    'url'      => /*Censored Hook URL*/,
    'username' => 'MyApp',
    'emoji'    => ':gear:',
    'level'    => 'debug',
],

Также, как видно из документации Я могу создать монолог, поэтому я сделал следующее:

namespace App\Logging;

class SlackLogFormatter
{
    /**
     * Customize the given logger instance.
     *
     * @param  \Illuminate\Log\Logger  $logger
     * @return void
     */
    public function __invoke($logger)
    {
        foreach ($logger->getHandlers() as $handler) {
            $handler->setFormatter(...);
        }
    }
}

И указал это как нажатие на мой журнал:

'slack'         => [
    'driver'   => 'slack',
    'tap' => [App\Logging\SlackLogFormatter::class]
    'url'      => /*Censored Hook URL*/,
    'username' => 'MyApp',
    'emoji'    => ':gear:',
    'level'    => 'debug',
],

Но в моем устройстве, где я обрабатываю саму запись журнала? Я имею в виду:

  1. Кажется, что $handler->setFormatter не является методом \Illuminate\Log\Logger класса.

  2. Я не могу выяснить, какой методМне нужно переопределить, когда мне нужно предоставить пользовательский формат. Я имею в виду, у меня есть метод invoke, а потом что?

...