如何使用 logrotate 在 laravel 中轮换日志?

How to rotate logs in laravel using logrotate?

几个月前部署了我的 laravel 应用程序,最近发现我的应用程序无法写入日志,因为我的磁盘已满。当我检查时,我发现 laravel.log 文件几乎是巨大的。我想知道如何使用 logrotate 旋转 laravel 日志。

转到 /etc/logrotate.d 并创建一个新的配置文件。

cd /etc/logrotate.d
sudo touch laravel_rotate

添加日志文件位置和一些设置。

log/file/dir/laravel_log.log { 
    monthly 
    missingok 
    rotate 12 
    compress
    notifempty 
    create 755 www-data www-data 
}

设置说明:

  1. 每月:每月创建一次备份
  2. missingok: 文件丢失忽略
  3. 旋转 12:保留一年的备份价值
  4. notifempty: 日志为空不轮换
  5. compress: 压缩日志文件
  6. create: 创建具有以下权限的替换日志文件

要测试这个新配置,运行 sudo logrotate --force laravel_rotate

logrotate doc