Tomcat的catalina.out文件过大问题(logrotate方式)

问题

sudo du -sh /opt/tomcat/logs/*
...
4.5G    /opt/tomcat/logs/catalina.out
...

Tomcat在Cent OS上面的日志文件catalina.out达到了4G多。php

解决

logrotate

建立配置文件linux

vi /etc/logrotate.d/tomcat

编写配置文件:tomcat

/opt/tomcat/logs/catalina.out {   
    copytruncate   
    daily   
    rotate 7   
    compress   
    missingok   
    size 5M  
}

配置说明:bash

  • /opt/tomcat/logs/catalina.out:须要归档的日志路径
  • copytruncate:复制截断模式
  • daily:天天触发一次
  • rotate:最多7个日志文件
  • compress: 使用压缩
  • missingok:若是缺乏日志文件,请继续执行下一个日志文件而不发出错误消息
  • size: 仅当日志文件大小超过字节大小时才会轮换日志文件

这样logrotate就天天自动触发一第二天志切割归档。ide

测试logrotate轮写日志

logrotate -v /etc/logrotate.conf
...
rotating pattern: /opt/tomcat/logs/catalina.out  5242880 bytes (7 rotations)
empty log files are rotated, old logs are removed
considering log /opt/tomcat/logs/catalina.out
  log needs rotating
rotating log /opt/tomcat/logs/catalina.out, log->rotateCount is 7
dateext suffix '-20180928'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
copying /opt/tomcat/logs/catalina.out to /opt/tomcat/logs/catalina.out-20180928
set default create context
truncating /opt/tomcat/logs/catalina.out
compressing log with: /bin/gzip
...

而后,在tomcat的logs文件夹下面查看一下,是否对catalina.out文件进行了轮写备份。测试

[admin@Servicenumber logs]$ ls -lh
总用量 23M
...
-rw-r-----. 1 tomcat tomcat 249K 9月  28 09:30 catalina.out
-rw-r-----. 1 tomcat tomcat 566K 9月  28 09:27 catalina.out-20180928.gz
...

看到了gz文件,说明logrotate没有问题了。操作系统

logrotate的日志文件

/var/lib/logrotate.status

注意

使用logrotate时候,必定要确保tomcat日志输出位置是位于/var/log/tomcat/catalina.out才可以生效。不是操做系统的/var/log/日志输出位置,logrotate是没法启用的。.net

参考

logrotate(8) - Linux man page日志

How to Rotate Tomcat catalina.outcode

处理Tomcat日志catalina.out日志文件过大的问题(第二种方法适合各类日志的切割)

第十八章、認識與分析登錄檔

相关文章
相关标签/搜索