为什么要进行日志切割?
在生产环境下,如果不对日志切割的话,在某一个时间点服务出现问题,要去看是否有错误日志的话是比较麻烦的。
亲身经历,我负责的一个项目在夜晚出现服务假死情况,服务是正常运行的,但是该服务已经接收不到请求。
第二天查看日志的是否发现日志量也忒大了吧,catalina日志记录了三个月的,不知道为什么不做日志切割??
本文使用logrotate进行日志切割:
在/etc/logrotate.d下,新建tomcatrotate,编辑tomatrotate,写入如下内容:
/usr/local/tomcat/logs/catalina.out{
daily
rotate 15
missingok
dateext
compress
notifempty
copytruncate
}
/usr/local/tomcat/logs/catalina.out 指的是catalina.out日志所在的路径
daily 指定转储周期为每天
rotate 15 指定日志文件删除之前转储的次数,0指没有备份,5指保留5个备份
missingok 如果日志不存在则忽略该警告信息
dateext 文件后缀是日期格式,也就是切割后文件是:xxx.log-20150828.gz
compress 通过gzip压缩转储以后的日志(gzip -d xxx.gz解压)
notifempty 如果是空文件的话,不转储
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断
create 0664 xxx xxx 切割创建的文件权限为 0644 属主和属组为xxx。