はじめに
こんばんは。今回も簡単なものですが、微妙にハマったので備忘録です。
Laravelのログファイルが作られる際に、Batchでのログファイル作成とWebアクセスでのログファイル作成で作成者が違って、ログに書き込めないエラーというのが発生していました。
原因は簡単でログファイルを作る際のパーミッションが 644
だからです。
コレを解決するのは以下を行います。
バージョン
$ php artisan -V Laravel Framework 6.4.1
本題
config/logging.php
'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), 'level' => 'debug', 'days' => 14, 'permission' => 0664, ← ここを追加 ],
permission
を 0664
に指定することで、新規ログファイルのパーミッションは 664
になります。
該当ソースはこちら
LaravelというよりMonologの指定ですね。
おまけ
短くなったので、ついでに、別の新しいログファイルにログを吐かせたいという場合の設定方法を書いておきます。
config/logging.php
// 新たにログ設定を追加(levelとかpathとかは適当に) 'sample' => [ 'driver' => 'single', 'path' => storage_path('logs/sample.log'), 'level' => 'info', 'permission' => 0664, ]
使用方法
// Logファサードを使用する場合 Log::channel('sample')->info('==== Sample Log ====', ['loginId' => Auth::id()]);
終わりに
簡単ですが終わりです。
結構嵌りそうなもんですが、なぜデフォルトで 664
じゃないのでしょうね。
現場からは以上です。