2017-06-23 66 views
0

使用Lumen Framework 5.4,我試圖將Log::info('etc')寫入單獨的文件storage/logs/info.log。然而,我發現的代碼將日誌級別信息和以上的日誌記錄到單獨的文件中,而我只想將信息日誌級別記錄到我的自定義文件中。流明5.4日誌信息級別單獨文件

bootstrap/app.php

$app->configureMonologUsing(function($monolog) { 
    $handler = new Monolog\Handler\StreamHandler(storage_path('logs/info.log'), Monolog\Logger::INFO, false); 
    $handler->setFormatter(new \Monolog\Formatter\LineFormatter(null, null, true)); 

    $monolog->pushHandler($handler); 

    return $monolog; 
}); 

我怎樣才能確保流明將日誌級別的信息到storage/logs/info.log和所有其他的日誌級別爲默認的日誌文件,storage/logs/lumen.log

+0

https://laracasts.com/discuss/channels/general-discussion/advance-logging-with-laravel- and-monolog – prola

+0

你的代碼是正確的,你只需要在不同級別的'log'中使用多個'StreamHandlers'。爲了演示目的,我在不同的文件中記錄了'error'&'info' –

回答

1

您可以使用多個StreamHandlers來處理不同級別的 日誌。

試試這個: -它將記錄INFOinfo.log文件&別人logs.log文件

$app->configureMonologUsing(function($monolog) { 

$infoHandler = new Monolog\Handler\StreamHandler(storage_path("logs/info.log"), Monolog\Logger::INFO, false); 
$noticeHandler = new Monolog\Handler\StreamHandler(storage_path("/logs/logs.log"), Monolog\Logger::NOTICE, false); 


$monolog->pushHandler($infoHandler); 
$monolog->pushHandler($noticeHandler); 

$infoHandler->setFormatter(new \Monolog\Formatter\LineFormatter(null, null, true)); 
$noticeHandler->setFormatter(new \Monolog\Formatter\LineFormatter(null, null, true)); 

return $monolog; 
}); 

注: -

一個便條,她片斷,您推送流處理程序o的順序n是 重要:推動最後限制,以便它首先被擊中。 否則,如果你最後推了infoHandler,那麼它會記錄上面的所有內容,並且錯誤不會導致 錯誤處理程序。

所以,把你的處理器的嚴重性水平升高

來源: - Advance Logging with Laravel and Monolog