laravel日志文件太大

laravel设置日志为每天产生一个日志文件,现有有个问题,日志文件太大,动不动就20多M,有什么方法能让它自动切割,大于2m就生成一个新的日志文件呢?

阅读 7.8k
5 个回答

我不是很清楚laravel他自己有没有自带的这种功能

针对这种需求一般的做法就是写个daemon或者定时脚本实时监控日志文件,然后把旧的打包,生成新的日志文件

其实一般更常见的做法不是按文件大小处理日志而是按时间,比如每天晚上12点将当天的日志打包,生成空的新日志文件,并且隔一段时间清理一些旧的日志文件,至于这些尺度可以自己定制化

以上大家都说了各种切日志的方法,我就不再补充,但是有一点我比较疑惑,20多M的日志文件并不算大呀。

按天的日志大是因为你log_level配置的不对吧,如果你切割的每天的日志,那么找问题时候,你然后需要每个去看,好像只会更麻烦。

这种情况下建议不使用Laravel自己的日志切割,使用Linux系统的logrotate进行日志切割

/webroot/laravel.log {
    size=2M
    rotate 100
    missingok
    notifempty
    sharedscripts
    delaycompress
}

你需要配置这几项

'log' => env('APP_LOG', 'daily'),

'log_level' => env('APP_LOG_LEVEL', 'debug'),

'log_max_files' => 30,
宣传栏