Использование 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);
}
}