gpt4 book ai didi

laravel - 在 Laravel 5.6 中使用 Monolog WebProcessor

转载 作者:行者123 更新时间:2023-12-04 15:55:55 32 4
gpt4 key购买 nike

我看到新的日志堆栈/ channel 提供了一种方法来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 我猜这是不对的。

最佳答案

好的。经过一些研究,似乎 tap 是 Hook 处理器 的最佳方式。因此,如果我想将处理器标记为当前日志记录堆栈中的所有处理程序,我可以通过添加以下内容来完成:

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

这个类依次将所需的处理器推送到它的 __invoke 方法中的所有处理程序。

namespace App\Logging;
use Illuminate\Log\Logger;

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

关于laravel - 在 Laravel 5.6 中使用 Monolog WebProcessor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51677615/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com