问题:为什么需要归档?
如果 catalina.out 日志达到 2GB 大小的时候,Tomcat 因为缓存问题,便没有办法继续输出日志了。
为了避免这种情况,你需要及时对 catalina.out 进行归档。
问题:tomcat自身对日志内容进行归档,为什么日志还是会越来越大
- 实际上 Tomcat 自身也会对日志内容进行归档,但是归档后,Tomcat 不会清理 catalina.out 的内容,这将会导致 catalina.out 越来越大
解决方案
- 使用场景:Linux/Unix
- 使用方式:采取logrotate日志轮询
执行命令:
vi /etc/logrotate.d/tomcat
输入以下内容:
/opt/apache-tomcat-8.0.15/logs/catalina.out{
rotate 10
copytruncate
daily
dateext
nocompress
missingok
notifempty
}
参数功能:
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断
daily 指定转储周期为每天
dateext 使用日期作为命名格式,切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期
例:error.log-20150506,没有这个配置项会附加一个小数点加一个数字序号
nocompress 不需要压缩时,用这个参数
missingok 如果日志不存在则忽略该警告信息
notifempty 表示如果log文件是空的,就不进行rotate
完成上面的工作后,你可以不需要在你的操作系统中做任何工作,日志归档程序将会每天对你的日志进行归档的。
执行命令
/usr/sbin/logrotate -f /etc/logrotate.conf
执行命令后,在/opt/apache-tomcat-8.0.15/logs/里面会存在catalina.out-20150605,而catalina.out的大小变为了0