2017年2月 のアーカイブ
Laravel 5.1 でログ出力、それから (ログメールドライバー動作不良対処、クエリ出力の調整)
おひさしぶりです。運用していたら結構変わったので、またこのネタです。
一応以前の記事へのリンクおいときます。
『Laravel 5.1 でログ出力、その後 (出力レベル設定、クエリ出力)』
が、以前の記事の方法だとログメールドライバーが動作しないという問題が発生したので参考にしちゃだめ。
というわけで、以下の要件と不具合対処のために改修した内容を紹介します。
- ログファイルの権限絡みのエラー回避、何処から起動された処理かわかりやすくする等の目的で実行ユーザー名ベースでログファイルを作成。
- 動作環境(local, testing, production等のenvironment)でもログファイルを分ける。
- バッチ処理やartisanのコマンド実行の場合はARTISAN_BINARYをログファイル名に挿入してWebアクセスとはログファイルを分ける。
- デバッグフラグ(app.debug)を落とした状態ではINFO以上のログのみ出力。
- .envでAPP_QUERY_LOGGINGにtrueを設定したら発行されたクエリをinfoログで専用ログファイルに出力(デバッグフラグでのコントロールを廃止し個別にコントロール可能とし、ファイルも分けた)
- 以前の実装ではログメールドライバー(メール送信内容をログ出力するドライバ)が正常動作しなかったためLoggerインスタンスを差し替える方法から既存Loggerインスタンスのhandlerを差し替える方法に実装を変更。