如何扩展laravel记录器?

时间:2017-04-27 12:10:29

标签: php laravel laravel-5.2 monolog

我为不同级别的日志创建了不同的文件,例如Log :: info,Log :: error等。现在我还想在出现错误时发送消息。我也是通过在app/bootstrap.php

中编写以下代码来完成此操作的
$app->configureMonologUsing( function($monolog) {
    $slackHandler = new Monolog\Handler\SlackHandler(env('SLACK_TOKEN'), env('SLACK_CHANNEL'), 'Monolog', true, null, Monolog\Logger::ERROR);
    $monolog->pushHandler($slackHandler);
});

但是它已经覆盖了默认记录器,现在只有松弛记录器工作且没有日志添加到storage / logs /文件夹中

1 个答案:

答案 0 :(得分:1)

文档对于它究竟是做什么非常模糊,但看起来configureMonologUsing将Monolog配置为仅使用您专门添加到其中的处理程序。这意味着从未添加Laravel设置为登录laravel.log文件的处理程序(我相信StreamHandler)。

我建议不要使用它并将此代码放入AppServiceProvider中,这将添加新处理程序,同时保留Laravel喜欢添加的所有默认处理程序...

$monolog = \Log::getMonolog();
$slackHandler = new \Monolog\Handler\SlackHandler(env('SLACK_TOKEN'), env('SLACK_CHANNEL'), 'Monolog', true, null, Monolog\Logger::ERROR);
$monolog->pushHandler($slackHandler);