Laravelのログはデフォルトでは1つのファイルに追記を繰り返していきます。
ローテーションさせましょう。
.envファイルのデフォルト値「stack」を「daily」に変更します。
.env
LOG_CHANNEL=stack
↓
LOG_CHANNEL=daily
これだけでローテーションできるようになります。
/config/logging.php の days 項目に設定できます。
'daily' => [
'days' => 7,
],
その他以下のような設定が可能です。
名前 | 説明 |
---|---|
stack |
「マルチチャンネル」チャンネルを作成するためのラッパー機能 |
single |
シングルファイル/パスベースのロガーチャンネル(StreamHandler ) |
daily |
RotatingFileHandler ベースの毎日ファイルを切り替えるMonologドライバ |
slack |
SlackWebhookHandler ベースのMonologドライバ |
syslog |
SyslogHandler ベースのMonologドライバ |
errorlog |
ErrorLogHandler ベースのMonologドライバ |
monolog |
サポートしているMonologハンドラをどれでも使用できる、Monologファクトリドライバ |
custom |
チャンネルを生成するため、指定したファクトリを呼び出すドライバ |
monolog を選択して、深刻なエラーの場合はメールなり通知を送信するという運用が実用的かと思われます。
/config/logging.php に permission 項目を記述できます。 (Laravel version 5.6.10 以降)
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
'days' => 7,
'permission' => 0666,
],