Использование Monolog WebProcessor с Laravel 5.6

Я вижу, что новый стек регистрации / каналы обеспечивает способ tap или определить handlers, Тем не менее, я пытаюсь получить WebProcessor загружен, и это не похоже на работу. Должно ли это коснуться? Или есть другой способ загрузить это?

Это специфично для Laravel 5.6. Вот что я использовал в своем старом приложении, которое использует Laravel 5.2 (bootstrap/app.php):

$app->configureMonologUsing(function (Monolog\Logger $monolog) {
    /* Include basic http props in logs */
    $webProcessor = new Monolog\Processor\WebProcessor();
    $monolog->pushProcessor($webProcessor);
});

@AkenRoberts я пробовал tap => Monolog\Processor\WebProcessor::class что я думаю, это не правильно.

1 ответ

Решение

Хорошо. После небольшого исследования кажется, что tap это лучший способ зацепить processors, Итак, если я хочу пометить процессор для всех обработчиков в текущем стеке журналирования, я могу добавить это:

tap => [[App\Logging\MyClass::class]]

Этот класс, в свою очередь, будет выдвигать необходимые процессоры на все обработчики в пределах его __invoke метод.

/**
 * Customize the given logger instance.
 *
 * @param  \Illuminate\Log\Logger  $logger
 * @return void
 */
public function __invoke($logger)
{
    foreach ($logger->getHandlers() as $handler) {
        $handler->pushProcessor(new WebProcessor);
    }
}
Другие вопросы по тегам