歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> tomcat日志自動切割

tomcat日志自動切割

日期:2017/2/27 15:57:04   编辑:Linux教程
可以每次手工或定時(crontab/計劃任務)清理 catalina.out 文件,或是規劃好日志輸出(終究也會有滿的時候)。再就是有兩種較好的解決方案去真正的切分 catalina.out 文件,讓 catalina.out 只存有最新的日志。

一. 改用 Log4J 來輸出 Tomcat 日志,借助 Log4J 的各種日志切分的功能。詳情可參考: http://www.linuxeye.com/Linux/2026.html,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到此你的日志自動分割就完成了,以後每天會生成當天時間加日期的日志
原文:http://my.oschina.net/kcw/blog/325345
Copyright © Linux教程網 All Rights Reserved