LoginSignup
0
1

More than 3 years have passed since last update.

Laravelをインストールしたときにまずやること(ログ設定変更)

Posted at

TL;DR

config/logging.phpの設定を確認すること。

stackのchannelsをdailyに変更

Laravelをインストールして、私がまずやるのはログの設定を変更することです。
ログの設定はconfig/logging.phpにまとめられています。
singledailyslackなどがあり、デフォルトはstackで、stackは複数のログをchannelsでまとめることができます。

最新のLaravel 6.12.0では、stackchannels['single']となっていました。
私はこのsingledailyに変更します。

config/logging.php
...

    'channels' => [
        'stack' => [
            'driver' => 'stack',
            'channels' => ['daily'],
            'ignore_exceptions' => false,
        ],

...

古の昔(バージョン4時代)も今と同じくsingleだったのですが、最近はデフォルトでdailyの記憶があります。
調べたら、5.8.35ではstackのデフォルトはdaily
6.5.2までdaily、6.8.0でsingleに戻っていました。
何故に戻った。。。:sweat_smile:
singleのままだと、単一のログファイルにログが溜まっていき、巨大なログファイルを生成してしまいます。
しかも削除されません。
これがdailyだとログローテーションで一定期間後には削除されます。
膨大なログを想定しているなら、それ相応のロギングシステムを外部サービス含めて検討すべきですが、
とりあえずはdailyにしておくのが良策かなと思います:thumbsup:

php_sapi_nameでログファイルを分ける

さらにですが、Webアクセスとコンソールコマンドで出力先ログファイルを分けます。

config/logging.php
...
        'daily' => [
            'driver' => 'daily',
            'path' => storage_path('logs/laravel-'.php_sapi_name().'.log'),
            'level' => 'debug',
            'days' => 14,
        ],
...

例えばartisanコマンドでエラーがログファイルに出力された後に、Webアクセスでエラーが発生した場合、ログファイルに書き込み権限がなくて書き込めないエラーが発生します:cry:
それが上記のように変更することで、artisanコマンドでのエラーはlaravel-cli-YYYY-MM-DD.log
Webアクセスからのエラーはlaravel-fpm-fcgi-YYYY-MM-DD.logに出力されます(Apacheだとapache2handlerになります)。
しかもログファイルによってエラー発生元が切り分けられて調査も楽になるので、皆さんも是非!!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1