当Tomcat的日志文件catalina.out的大小大于2GB时,Tomcat程序崩溃时将有可能会启动失败并且不会有任何错误信息提示。为了避免该场景的出现,我们要定期轮转catalina.out日志文件。

这里小白使用CentOS6U5自带的logrotate程序来解决catalina.out的日志轮转问题。这种方式比较简单。在/etc/logrotate.d/目录下新建一个名为tomcat的文件,

cat >/etc/logrotate.d/tomcat-www<<EOF /application/apache-tomcat-biz/logs/catalina.out{ copytruncate daily rotate 14 missingok compress delaycompress dateext dateformat .%Y-%m-%d.log #size 16M } EOF

/bin/echo '0 2 * * * find /application/apache-tomcat-www/logs -mtime +17 -name '*' -exec rm -rf {} ;' >>/var/spool/cron/root

以上的配置说明:

/usr/local/apache-tomcat-8.0.28/logs/catalina.out{ # 要轮转的文件 copytruncate # 创建新的catalina.out副本后,截断源catalina.out文件 daily # 每天进行catalina.out文件的轮转 rotate 7 # 至多保留7个副本 missingok # 如果要轮转的文件丢失了,继续轮转而不报错 compress # 使用压缩的方式(非常有用,节省硬盘空间;一个2~3GB的日志文件可以压缩成60MB左右) delaycompress 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。 size 16M # 当catalina.out文件大于16MB时,就轮转,优先级高于daily