Laravel:使用`configureMonologUsing()`的多个日志提供程序?

gui*_*ice 4 php laravel monolog laravel-5

我正在使用configureMonologUsing()两个自定义记录器.做标准的SOLID主体,我有两个提供者:ConsoleLoggerProviderMailLogProvider.

这两个都有一个类似于的寄存器:

public function register()
{
    app()->configureMonologUsing(function(\Monolog\Logger $monolog) {
        $monolog->pushHandler(new HandlerClass());
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,我注意到logger会覆盖另一个记录器......我如何堆叠这些?

我也尝试过使用boot(),但是没有用.我找不到任何其他方式添加到Monolog堆栈.

最好,我也想叠加到Laravel的内置记录器上.

gui*_*ice 9

我(终于)找到了答案我的问题:

在我的提供者中configureMonologUsing(),我使用了而不是使用Log::getMonolog()->pushHandler([..])

这样可行!所有记录器,包括内置的Laravel文件记录器,都在触发.最后!

(老实说,我一直在寻找一种方法来添加到Monolog堆栈;我显然没有用正确的术语搜索)