2017-04-27 77 views
0

我已经为不同级别的日志创建了不同的文件,例如Log :: info,Log :: error等。现在我也想发送一条消息,只有在出现错误时才松懈。我已经写下面的代码在app/bootstrap.php如何扩展laravel记录器?

$app->configureMonologUsing(function($monolog) { 
    $slackHandler = new Monolog\Handler\SlackHandler(env('SLACK_TOKEN'), env('SLACK_CHANNEL'), 'Monolog', true, null, Monolog\Logger::ERROR); 
    $monolog->pushHandler($slackHandler); 
}); 

这样做太多,但它已经overrided默认记录器,现在只能松弛记录器正在工作,没有记录在存储/日志/文件夹

回答

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);