2017-04-27 52 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);