使用logrotate分割Tomcat的catalina日志

摘要: 使用logrotate分割Tomcat的catalina日志

使用logrotate分割Tomcat的catalina日志

1
切割catalian日志的方式有很多种,比如shell脚本的、cronolog或者通过配置log4j等等这些都可以实现。但今天我要介绍是使用logrotate来按日期生成日志。

原文是一个外国博主的文章,在这里分享给大家。

1
如果catalina.out的大小超过了2G,那么tomcat可能在没有错误提示的情况下崩溃、无法启动。所以为了避免出现这个问题,我们应该每天分割catalina.out。

如何每天自动的分割catalina.out或者大小达到5M时切割catalina.out

1.新建一个文件
在/etc/logrotate.d/ 目录下新建一个文件,命名随意。

1
# /etc/logrotate.d/tomcat

2.复制下面的语句至上文新建的文件中

1
# /var/log/tomcat/catalina.out {   copytruncate   daily   rotate 7   compress   missingok   size 5M  }

各个配置的具体含义:

  • 确保/var/log/tomcat/catalina.out指向你服务器中的catalina.out的地址
  • daily - 每天切割
  • rotate - 保留最多七个文件
  • compress - 压缩分割后的文件
  • size - 当catalina.out大于5M时分割

    如何起作用

  • 每天晚上,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/tomcate文件

    手动执行logrotate

    执行以下语句来手动运行cron任务
1
# /usr/sbin/logrotate /etc/logrotate.conf

logrotate的更多操作

1
man logrotate

阿里云日志切割

  1. 执行命令
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # cat >/etc/logrotate.d/tomcat <<EOF
    /home/admin/taobao-tomcat-production-7.0.59.3/logs/catalina.out {
    daily
    rotate 7
    dateext
    dateformat .%Y-%m-%d
    notifempty
    missingok
    copytruncate
    }
    EOF

2.手动触发

1
# logrotate -f /etc/logrotate.d/tomcat

原文地址: https://www.cnblogs.com/tayxxs/p/5701546.html

评论