切分 Tomcat 的 catalina.out 文件,解决日志文件过大的问题

切分 Tomcat 的 catalina.out 文件,解决日志文件过大的问题
原文  http://unmi.cc/split-tomcat-catalina-out-file
主题 Tomcat Linux
Tomcat 下日志文件 catalina.out 过大,几百兆或几个G,进而造成再也无法写入更多的日志内容,至使 Tomcat 无法处理请求。需然你可以在 $TOMCAT_HOME/logs 目录下看到有 catalina.2012-09-16.log 这样分日期的归档,但是主文件 catalina.out 却一直在膨胀。


你可以每次手工或定时(crontab/计划任务)清理 catalina.out 文件,或是规划好日志输出(终究也会有满的时候)。再就是有两种较好的解决方案去真正的切分 catalina.out 文件,让 catalina.out 只存有最新的日志。


一. 改用 Log4J 来输出 Tomcat 日志,借助 Log4J 的各种日志切分的功能。详情可参考: http://baalwolf.iteye.com/blog/1464093 , http://tomcat.apache.org/tomcat-6.0-doc/logging.html 。


二. Linux 下使用 cronolog 工具来切分 catalina.out


这里重点介绍这种方法,具体步骤如下:


1. 下载安装 cronolog,它的主页 http://cronolog.org . 下载的是源码,安装过程就是 ./configure, make, make install,最后一步可直接把 src/cronolog 执行文件拷入到某个适合的目录,如 /usr/local/sbin/ 目录


2. 编辑 bin/catalina.sh 文件


    1)找到下面行并把它用 # 注释掉


touch "$CATALINA_BASE"/logs/catalina.out
    在新 Tomcat7 的 bin/catalina.sh 文件要注释的行是


touch "$CATALINA_OUT"
    2)替换下面的行(有两处,不过一般在 -security 中的那一行不需要去关注,不妨两处全替换了)


>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
    为


2>&1 |/usr/local/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &
在 Tomcat7 的 bin/catalina.sh 中是需要替换行是


>> "$CATALINA_OUT" 2>&1 "&"
替换后该行的内容与上面是一样的。


为什么 Tomcat7 后会有所不同,因为在它的 catalina.sh 文件中有如下定义


CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
3. 保存 catalina.sh 文件,重启 Tomcat 即可。


以后看到 $TOMCAT_HOME/logs/ 下的就是 catalina-2012-09-16.out, catalina-2012-09-17.out ...... 一系列文件,好像 cronolog 又没提供方式来控制归档的日志文件个数。


参考: http://www.tomcatexpert.com/knowledge-base/rotating-catalinaout-log-files
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值