使用ruby on rails开发的人都知道在系统默认情况下都会将日志文件写入到development.log文件中,会越来越大,不能按照日期方式来存储。但是我们可以借助linux自带的日志分割logrotate来实现日志存储功能,具体的实现方式如下:
在目录/etc/logrotate.d下新建一个ror文件,内容如下
/home/leo/ror/log/production.log {
missingok
notifempty
nocompress
olddir /home/leo/ror/log/production/ #需要手动创建
daily
copytruncate
rotate 365
}
missingok
notifempty
nocompress
olddir /home/leo/ror/log/production/ #需要手动创建
daily
copytruncate
rotate 365
}
第一行是日志的路径
missingok表示日志不存在就不处理
notifempty表示日志为空则不处理
nocompress表示不启用压缩
olddir这个可以将日志转储到其他目录
daily表示一天转储一次
copytruncate表示先复制再清空
rotate表示保留备份的数量,我这里填的是365份
在保存后最好通过下面的命令手动测试一下你的配置文件,以确保没有错误。
/usr/sbin/logrotate /etc/logrotate.d/yourapp -v
執行 /usr/sbin/logrotate -f /etc/logrotate.conf
最后会在对应的文件下看到日志文件;
备注:centos需要手动添加到定时任务里面:
0 17 * * * /usr/sbin/logrotate -vf /etc/logrotate.conf #每天下午5点执行