- 1. 概要
- 2. 設定
- 3. 表示
- 4. 参考サイト
1. 概要
「Laravel」のログをローテーションさせる、正式な作法を紹介します。
2. 設定
「Laravel 10」の場合は。
プロジェクト所有者の権限で、プロジェクトのディレクトリへ移動して。
vi config/logging.php
'default' => env('LOG_CHANNEL', 'stack'),
上記を下記へ変更します。
'default' => env('LOG_CHANNEL', 'daily'),
参考サイトでは、下記を記述せろと言いますが。
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
'days' => 14,
'replace_placeholders' => true,
],
これは、もともとありますがな。
vi .env
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
7行目を下記へ変更します。
LOG_CHANNEL=daily
変更後。
(「www」の部分は、「RedHat」系であれば、「apache」、「Ubuntu」系であれば「www-data」になります)
sudo -u www php artisan config:clear
sudo -u www php artisan cache:clear
これで、ログが。
/path/to/storage/logs/laravel-YYYY-MM-DD.log
となり、日替わりでローテーション。
14日分保持することになります。
3. 表示
しかし、上記の形式にすると。
ログを。
tail -f /path/to/storage/logs/laravel.log
で見ることができていたのに、当日の日付を入力せにゃならんので、履歴から取り出すこともできない。
そこで、ひと工夫。
ドキュメントルートあたりに、「Makefile」を作成しまして、下記を記述します。
(2行目の先頭は、タブなので注意)
tail:
tail -f /path/to/storage/logs/laravel-$(DATE).log
これで、「Makefile」の置いてあるディレクトリで。
make tail
と入力すれば、ログを表示することができます。
4. 参考サイト
本ページは、「ChatGPT」軍曹を参考にさせていただきました。
|