catalina.out其实是tomcat的标准输出(stdout)和标准出错(stderr),这是在tomcat的启动脚本里指定的,如果没有修改的话stdout和stderr会重定向到这里。所以我们在应用里使用System.out打印的东西都会到这里来。另外,如果我们在应用里使用其他的日志框架,配置了向Console输出的,则也会在这里出现。
如果Tomcat的catalina.out的大小超过了2G,那么tomcat可能在没有错误提示的情况下崩溃、无法启动。所以为了避免出现这个问题,我们应该每天分割catalina.out。
在此我使用的是logrotate工具切割catalina.out文件
1、首先在/etc/logrotate.d/目录创建一个tomcat文档,内容如下:
/data/apache-tomcat-9.0.13/logs/catalina.out { copytruncate daily rotate 10 compress missingok size 16M }
配置说明:
/data/apache-tomcat-9.0.13/logs/catalina.out #服务器中catalina.out存放地址
copytruncate #拷贝原日志文件,并将其大小变为0
daily #每天切割
rotate 10 #保留最多10个文件
compress #压缩分割后的文件
missingok #文件丢失了,继续切割而不报错
size 16M #当catalina.out文件大于16M时,就切割
2、自动切割
- 每天晚上,cron daemon会自动执行/etc/cron.daily目录下的任务
- 这个会触发/etc/cron.daily/logrotate文件,logrotate一般是随linux安装的。它会执行这个命令-“/etc/sbin/logrotate /etc/logrotate.conf”(注意空格)
- /etc/logrotate.conf 包含了/etc/logrotate.d目录下的所有脚本
- 这个会触发上一步写的/etc/logrotate.d/tomcat文件
3、手动切割
执行以下语句来手动运行cron任务
/usr/sbin/logrotate /etc/logrotate.conf
以上是生产环境使用的tomcat日志文件catalina.out切割操作。