⚙️Как ротировать файлы журнала Laravel

Как настроить ротацию логов Laravel

by itisgood

Важно обеспечить правильную ротацию журналов, которая предотвратит проблемы с дисковым пространством и обеспечит бесперебойную работу системы.

Если вы используете приложение Laravel в системе Linux, вам также следует внедрить надлежащую политику ротации журналов.

Здесь, в этой статье, мы обсудим 3 способа ротации журналов Laravel.

Способ 1: Используйте встроенную в Laravel функцию ежедневной ротации журналов

В Laravel есть встроенные опции ротации журналов.

Вам просто нужно настроить Laravel на ежедневную автоматическую ротацию журналов без использования внешних инструментов.

Отредактируйте файл config/logging.php в редакторе и добавьте следующее содержимое:

'channels' => [
    'daily' => [
        'driver' => 'daily',
        'path' => storage_path('logs/laravel.log'),
        'level' => 'debug',
        'days' => 7,
    ],
],

Затем установите период по умолчанию в envфайле:

LOG_CHANNEL=daily

Способ 2. Настройте Logrotate на системном уровне для журналов Laravel

В системах Linux мы также можем использовать службу logrotate для управления большими файлами журналов на уровне операционной системы.

Вам просто нужен файл конфигурации, приведенный ниже:

sudo nano /etc/logrotate.d/laravel

Добавьте следующий контент:

/var/www/your-laravel-app/storage/logs/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 664 www-data www-data
    sharedscripts
    postrotate
        php /var/www/your-laravel-app/artisan log:clear >/dev/null 2>&1 || true
    endscript
}
Обязательно измените путь к вашему приложениюlaravelapp в приведенном выше файле.
Теперь выполните пробный запуск и/или принудительное вращение, чтобы убедиться, что конфигурация работает правильно.
# Тестовая конфигурация (режим отладки)
sudo logrotate -d /etc/logrotate.d/laravel

# Принудительное немедленная ротация
sudo logrotate -f /etc/logrotate.d/laravel

Способ 3: Очистите старые журналы вручную (необязательно)

Для машин разработки вы можете просто использовать команду Artisan для очистки текущего файла журнала, когда это необходимо.
php artisan log:clear
см. также:

Loading

You may also like

Leave a Comment