【Laravel】monologでカスタムログ出力先を変更する方法メモ


ログの出力設定

調査に時間を掛けてしまったのでメモです。

Laravelのログは全て同じファイル(storage/logs/laravel.log)に出力される。

ログを単一で出力するか、日毎に分けて出力するかはconfig/app.phpで設定することができる。

 

■config/app.php

 

ログの出力先を変更したい時

本番環境のデバッグの為、標準で出力するログとは別に、特定の機能に対してログを仕込みたい場合があります。

その場合、別ファイルにログを出力するほうが調査がはかどりやすいので、今回はLaravel標準でも使用している「Monolog」を利用します。

 

 

これで、「/storage/logs/login.log」にログが表示されます!

★今回はハンドラーをStreamHandlerにしましたが、日別でログローテしたい場合は、2番めの引数に何日分のログを取るのか入れて、RotatingFileHandlerを使用してください。

 
以下のようにファイルが出力されるはずです。

 

その他

今回は一部分しか使ってないですが、色んな所で、ログを取りたい場合は、トレイト化した方が良いかも。

 

 
あと、基本singleか、dailyしか設定が無いので、1週間単位でログを出力したかったりする場合、StreamHandlerを使って、ログローテーションを自作するしか無い気がします。

例えばFileファザード使って、対象のログファイルの一覧をとって、最終更新のファイルが1週間以上前のログで、5つ以上ファイルがあったら一番古いログを削除して本日日付名で新規ファイル作成するとか。
(方法あったら、ご教授くださいm(_ _)m )

————————————-

この記事がお役に立てたら、是非シェアをお願いします^^