使用cronolog自动分割tomcat日志

今天在tomcat服务器上看了下日志 我去catalina.out  1.4G


[kcw@web1 logs]$ du -sh catalina.out 
1.4G	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/ 目录。

安装cronolog


sudo wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
sudo tar xf cronolog-1.6.2.tar.gz
./configure --prefix=/opt/cronolog
make
make install
cd /opt/cronolog
生成如下目录
info  man  sbin


修改Catalina.sh

替换


kcw@web1 bin]$ sudo cp catalina.sh catalina.sh.bak  先备份在修改
[kcw@web1 bin]$ pwd
/opt/tomcat/bin
sudo vim catalina.sh
注释掉这一行如下
#touch "$CATALINA_OUT"
找到这段
else
    "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
      -Dcatalina.base="$CATALINA_BASE" \
      -Dcatalina.home="$CATALINA_HOME" \
      -Djava.io.tmpdir="$CATALINA_TMPDIR" \
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 &
替换成
else
    "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
      -Dcatalina.base="$CATALINA_BASE" \
      -Dcatalina.home="$CATALINA_HOME" \
      -Djava.io.tmpdir="$CATALINA_TMPDIR" \
      org.apache.catalina.startup.Bootstrap "$@" start \
       2>&1 |/opt/cronolog/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &

重启



[kcw@web1 bin]$ sudo catalina.sh stop
sudo: catalina.sh: command not found
[kcw@web1 bin]$ sudo sh shutdown.sh 
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar
[kcw@web1 bin]$ sudo sh startup.
sh: startup.: No such file or directory
[kcw@web1 bin]$ sudo sh startup.sh 
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar

查看分割情况



[kcw@web1 tomcat]$ cd logs/
[kcw@web1 logs]$ ls
-rw-r--r-- 1 root root      28757 Oct  9 14:10 catalina-2014-10-09.out


OK到此你的日志自动分割就完成了,以后每天会生成当天时间加日期的日志



你可能感兴趣的:(使用cronolog自动分割tomcat日志)