2017-06-23 16 views
0

ルーメンフレームワーク5.4を使用して、Log::info('etc')を別のファイルstorage/logs/info.logに書き込もうとしています。しかし、私が見つけたコードはログレベルの情報を記録し、は別のファイルに記録しました。 bootstrap/app.phpルーメン5.4別ファイルへのログ情報レベル

$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/lumen.logstorage/logs/info.logにレベル情報および他のすべてのログ・レベルをログに記録することを確認することができますか?

+0

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

+0

あなたのコードは正しいですが、 'log'のさまざまなレベルに対して複数の' StreamHandlers'を使うだけです。私はデモの目的のために 'error'と' info'を別々のファイルに記録しています –

答えて

1

あなたは ログの異なるレベルを処理するための複数のStreamHandlersを使用することができます。

これを試してください: -それはlogs.logファイルにinfo.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; 
}); 

注意を&他人をINFOがログに記録されます: -

つのノートをそのスニペットに、ストリームハンドラを押す順序nは です。最も制限の強いものを最後に押すと、最初にヒットします。 それ以外の場合、最後にinfoHandlerをプッシュした場合は、 もすべてログに記録され、エラーが発生するとエラーハンドラ には反映されません。

だから、重症度

ソースの増加レベルであなたのハンドラをプッシュ: - Advance Logging with Laravel and Monolog

関連する問題