Tomcat日志文件catalina.out的分割

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、自动切割

  1. 每天晚上,cron daemon会自动执行/etc/cron.daily目录下的任务
  2. 这个会触发/etc/cron.daily/logrotate文件,logrotate一般是随linux安装的。它会执行这个命令-“/etc/sbin/logrotate /etc/logrotate.conf”(注意空格)
  3. /etc/logrotate.conf 包含了/etc/logrotate.d目录下的所有脚本
  4. 这个会触发上一步写的/etc/logrotate.d/tomcat文件

3、手动切割

  执行以下语句来手动运行cron任务 

/usr/sbin/logrotate /etc/logrotate.conf

以上是生产环境使用的tomcat日志文件catalina.out切割操作。

原文地址:https://www.cnblogs.com/eeexu123/p/13098379.html