tomcat在使用中会遇到catalina.out日志过大的情况,下面我们利用系统(以centos为例)自带的logrotate来切割文件,实现日志文件的每天自动切割。

logrotate程序默认程序会切割/etc/logrotate.d/下面定义的文件,以下方法请使用root用户操作,不然会提示权限不足。


创建文件:

#vi /etc/logrotate.d/tomcat



填入以下信息(catalina.out实际路径以实际情况填写):

/usr/local/tomee/logs/catalina.out {
daily
rotate 10
missingok
dateext
notifempty
copytruncate
}


授权(以我想使用的用户jjzb为例):

#chown jjzb.jjzb /etc/logrotate.d/tomcat
#chmod +x /etc/logrotate.d/tomcat

立即切割看下效果:

#logrotate --force /etc/logrotate.d/tomcat


Linux系统用logrotate切割Tomcat日志的方法_第1张图片

如无报错会显示以上信息,会产生以日期结尾的文件。

       
参数说明,以下参数可根据实际想要效果添加删除:
        daily 指定转储周期为每天
  rotate 15 指定日志文件删除之前转储的次数,0指没有备份,15指保留15个备份
  missingok 如果日志不存在则忽略该警告信息
  dateext 文件后缀是日期格式,也就是切割后文件是:xxx.log-20150828.gz
  compress 通过gzip压缩转储以后的日志(gzip -d xxx.gz解压)
  notifempty 如果是空文件的话,不转储
  copytruncate 用于还在打开中的日志文件,把当前日志备份并截断


http://www.cnop.net/html/web/tomcat/2016/0823/4874.html