2016-04-01 18 views
1
私は次のように変更私のログ・パスを使用してい

Laravel変更ログ・パス

\Log::useDailyFiles(...) 

しかし、私はまだ/storage/logs/にログエントリを取得します。ログパスのみを使用するにはどうすればよいですか?

答えて

3

ConfigureLoggingクラスのブートストラップ時に、Laravelはすでにロガーのインスタンスを登録しています。したがって、Log::useDailyFiles()を使用する場合は、追加のログハンドラを追加するだけです。そのため、標準のログエントリも取得されますstorage/logs/laravel.log

デフォルトのログハンドラをオーバーライドするには、アプリケーションインスタンスで利用可能なconfigureMonologUsingメソッドを提供します。だから、ちょうどreturn $app;ステートメントの前に、あなたのbootstrap/app.phpファイルに次の行を追加します。

$app->configureMonologUsing(function($monolog) use ($app) { 
    $monolog->pushHandler(
     (new Monolog\Handler\RotatingFileHandler(
      // Set the log path 
      '/custom/path/to/custom.log', 
      // Set the number of daily files you want to keep 
      $app->make('config')->get('app.log_max_files', 5) 
     ))->setFormatter(new Monolog\Formatter\LineFormatter(null, null, true, true)) 
    ); 
}); 

それは維持する必要がありますどのように多くの日次ログファイルを決定するためにconfig/app.phpからlog_max_filesのための設定値を取得するためにRotatingFileHandler試行に渡された二番目のパラメータを、それが見つからない場合は、デフォルトで5になります。毎日のログファイルを無制限に保ちたい場合は、代わりに0を渡すだけです。


ログ設定の詳細についてはLaravel Documentationをご覧ください。

+0

ありがとう、私はそれを試してみましたが、私は致命的なエラーが発生しました:未定義のメソッドを呼び出す\ Foundation \ Application、なぜですか?私には分かりません –

+0

どのようなLaravelのバージョンを使用していますか?また、エラーが発生したファイルと行番号を含むエラースタックトレース全体を投稿し、その行にどのコードがあるかを指定してください。私は以前このコードを使用して、それはうまく動作します。 – Bogdan

+0

それは私のために働く!ありがとう – juanpscotto