PHP - Laravel - ログローテーション - 正式な作法


 クラウディア


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」軍曹を参考にさせていただきました。

EaseUS
AbemaTV 無料体験