linux下tomcat日志按大小、时间分割,自动清理

一、使用CentOS6U5自带的logrotate程序来解决catalina.out的日志轮转问题

在/etc/logrotate.d/目录下新建文件:tomcat,内容如下

/root/apache-tomcat-8.5.40/logs/catalina.out{
    copytruncate
    daily
    rotate 10
    missingok
    compress
    size 100M
}
以上配置说明:

/usr/local/apache-tomcat-8.0.28/logs/catalina.out{ # 要轮转的文件
    copytruncate # 创建新的catalina.out副本后,截断源catalina.out文件
    daily     # 每天进行catalina.out文件的轮转
    rotate 7   # 至多保留7个副本
    missingok   # 如果要轮转的文件丢失了,继续轮转而不报错
    compress   # 使用压缩的方式(非常有用,节省硬盘空间;一个2~3GB的日志文件可以压缩成60MB左右)
    size 16M   # 当catalina.out文件大于16MB时,就轮转
}

以上是如何工作的呢?

  1. 每天晚上crond守护进程会运行在/etc/cron.daily目录中的任务列表;

  2. 与logrotate相关的脚本也在/etc/cron.daily目录中。运行的方式为"/usr/bin/logrotate /etc/logrotate.conf";

  3. /etc/logrotate.conf文件include了/etc/logrotate.d/目录下的所有文件。还包括我们上面刚创建的tomcat文件;

  4. /etc/logrotate.d/tomcat文件会触发/usr/local/apache-tomcat-8.0.28/logs/catalina.out文件的轮转。

以上是程序自动完成的,不需要我们干预。当然了,我们也可以使用手工的方式进行logrotate程序。在命令行进行如下运行:

logrotate /etc/logrotate.conf

或者只轮转刚刚的tomcat配置文件:logrotate --force /etc/logrotate.d/tomcat

要想获得logrotate程序的更多帮助信息,可以查看其man page:man logrotate

二、cronolog工具

1. 到这里(http://cronolog.org/download/index.html)下载最新版本,本文编写时的最新版本是1.6.2版本。

2. 将下载好的文件解压缩,tar xvzf cronolog.tar.gz

3. 切换到解压缩之后的cronolog目录中

4. 初始化和编译安装

./configure --prefix=/usr/local/cronolog (这里--prefix后面的路径是你希望该工具的安装目标路径)

./make

./make install

 

修改tomcat的启动文件(tomcat/bin/catalina.sh)

1. 找到文件中的如下内容(注意:有两处)

org.apache.catalina.startup.Bootstrap "$@" start /
>> "$CATALINA_BASE"/logs/catalina.out 2&1 &

将其修改成如下格式:

org.apache.catalina.startup.Bootstrap "$@" start 2>&1 /
| /usr/local/cronolog/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

2. 注释如下内容

#touch "CATALINA_BASE"/logs/catalina.out

然后重新启动tomcat就可以完成任务了

 

三、终极方法(验证linux环境只需1、2、3、6、7步即可)

1、log4j.properties、log4j-1.2.17.jar、tomcat-juli-adapters.jar 放在tomcat下的lib目录
2、tomcat-juli.jar 放在tomcat下bin目录

3、删除tomcat下conf目录中的logging.properties

4、如果采用hz_tomcat7w.exe,删除java窗口内 Java Options 中的
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=D:\HZ3000\tomcat\conf\logging.properties

5、删除hz_tomcat7w.exe,删除logging窗口内 Java Options 中的
REdirect Stdout 选项中的内容
REdirect StdERROR 选项中的内容 

6、修改conf下的context.xml 内容:<Context swallowOutput="true">

增加 swallowOutput="true" 的属性配置,只有这样才能完全的把tomcat的stdout给接管过来。这一步很关键 在官网及网上找了许多资料都没有提及。

7、修改/bin/catalina.sh中对应位置

注释掉$CATALINA_OUT(200行左右)

 

8、以上log4j.properties、log4j-1.2.17.jar、tomcat-juli-adapters.jar等文件我已上次csdn资料(资料下载地址https://download.csdn.net/download/zzchances/11914534

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨两点钟同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值