如何使用 logrotate 在 Laravel 中旋转日志?

bri*_*eno 3 php logging logrotate laravel-5.6

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

Yan*_*Yan 9

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

cd /etc/logrotate.d
sudo touch laravel_rotate
Run Code Online (Sandbox Code Playgroud)

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

log/file/dir/laravel_log.log { 
    monthly 
    missingok 
    rotate 12 
    compress
    notifempty 
    create 755 www-data www-data 
}
Run Code Online (Sandbox Code Playgroud)

设置说明:

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

要测试此新配置,请运行 sudo logrotate --force laravel_rotate

对数旋转文档