如何在 Laravel 中使用 logrotate 进行日志轮转?

4

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


1
你的当前日志配置 (config/logging.php) 看起来是怎样的? - Namoshek
2
可能是如何配置php日志的logrotate的重复问题。已经有很多关于logrotate的答案了。在提问之前,请使用搜索功能。 - Mike Doe
这个文件差点就太大了,哈哈。 - ahpoblete
1个回答

14

前往/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. monthly: 每月创建备份
  2. missingok: 如果文件不存在则忽略它
  3. rotate 12: 保留一年的备份
  4. notifempty: 如果日志为空,则不要将其旋转
  5. compress: 压缩日志文件
  6. create: 使用以下权限创建替换日志文件

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

logrotate 文档


1
太好了,还可以根据大小旋转日志文件。 - zahra_oveyedzade

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接