日志分割的起因


随着时间的推移,catalina.out这个文件的尺寸将会越来越大,当需要检查日志内容时会导致文件难以打开,而且同时tomcat依旧在不断的向文件中输入内容,这也会降低tomcat的性能。因此将tomcat产生的catalina.out文件根据日期来分割,将每天产生的日志存放在一个独立的文件中,这样单个log文件就不会太大,而且过期的日志文件可以根据情况删除掉,或者备份到其他地方。(据说tomcat有默认的日志分割功能,能每天自动生成类似catalina.2010-10-08.log的文件,但是默认catalina.out文件却一直增长.)


以切分tomcat的catalina.out的日志为例


1安装cronolog


wget http://cronolog.org/download/cronolog-1.6.2.tar.gz

tar zxf cronolog-1.6.2.tar.gz

cd cronolog-1.6.2

./configure

make && make install


用which cronolog可以查到安装的路径,默认应该是/usr/local/sbin/cronolog,这个路径待会在修改catalina.sh时会用到。如下:

[root@localhost cronolog-1.6.2]# which cronolog

/usr/local/sbin/cronolog


2修改catalina.sh  这是重点


以Apache Tomcat/7.0.42为例 


第一步:

if [ -z "$CATALINA_OUT" ] ; then

  CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out

fi

修改为

if [ -z "$CATALINA_OUT" ] ; then

  CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out

fi


第二步:

touch "$CATALINA_OUT"

修改为

#  touch "$CATALINA_OUT"


第三步:

org.apache.catalina.startup.Bootstrap "$@" start \

>> "$CATALINA_OUT" 2>&1 "&"

修改为

org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \

| /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &  总共有两处


3重启tomcat

在日志目录下就会多了一个catalina.2014-06-12.out的日志


日志切割成功


附:


以tomcat 6.0.20为例


按上面方法先安装cronolog


再修改catalina.sh文件


org.apache.catalina.startup.Bootstrap "$@" start \

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

改为

org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \

| /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &


总共有两处 ****


touch "$CATALINA_BASE"/logs/catalina.out

改为

#  touch "$CATALINA_BASE"/logs/catalina.out


重启TOMCAT


相关链接:http://www.codesky.net/article/201111/173700.html

          http://www.cnblogs.com/yjhrem/articles/3147686.html