LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > Linux教程 >

tomcat日志自动切割

时间:2014-10-12 21:12来源:oschina 编辑:kcw 点击:
可以每次手工或定时(crontab/计划任务)清理 catalina.out 文件,或是规划好日志输出(终究也会有满的时候)。再就是有两种较好的解决方案去真正的切分 catalina.out 文件,让 catalina.out 只存有
可以每次手工或定时(crontab/计划任务)清理 catalina.out 文件,或是规划好日志输出(终究也会有满的时候)。再就是有两种较好的解决方案去真正的切分 catalina.out 文件,让 catalina.out 只存有最新的日志。

一. 改用 Log4J 来输出 Tomcat 日志,借助 Log4J 的各种日志切分的功能。详情可参考: https://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

转载请保留固定链接: https://linuxeye.com/Linux/2025.html

------分隔线----------------------------
标签:tomcat日志切割
栏目列表
推荐内容