Linux系统下分割tomcat日志

Posted lmaplet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统下分割tomcat日志相关的知识,希望对你有一定的参考价值。

      在Linux系统下,tomcat日志catalina.out并不会像window系统下,按日期进行重写备份,因此在Linux系统下会造成日志文件过大的情况,本文介绍采用 cronolog工具进行如在window下的效果,做到按日期自动分割日志,过程如下:

      1.在Linux安装cronolog,本文中采用的是cronolog-1.6.2版本

      [root@Test src]# tar zxvf cronolog-1.6.2.tar.gz

      [root@Test cronolog-1.6.2]# ./configure

      [root@Test cronolog-1.6.2]# make && make install

      2.找到tomcat下catalina.sh文件,编辑修改

      [root@Test bin]# vi catalina.sh

shift
  touch "$CATALINA_OUT"
  if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    "$_RUNJAVA" "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \\
      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \\
      -Djava.security.manager \\
      -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \\
      -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" $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 &

     修改为
  shift
  touch "$CATALINA_OUT"
  if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    "$_RUNJAVA" "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \\
      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \\
      -Djava.security.manager \\
      -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \\
      -Dcatalina.base="$CATALINA_BASE" \\
      -Dcatalina.home="$CATALINA_HOME" \\
      -Djava.io.tmpdir="$CATALINA_TMPDIR" \\
      org.apache.catalina.startup.Bootstrap "$@" start \\
      |/usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null 2>&1 &

  else
    "$_RUNJAVA" "$LOGGING_CONFIG" $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 \\
      |/usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null 2>&1 &

3.重新启动tomcat,效果如下:

 

 ps:由于不知道怎么上传附件, cronolog工具安装就靠大家自行下载了

 

以上是关于Linux系统下分割tomcat日志的主要内容,如果未能解决你的问题,请参考以下文章

Linux下Tomcat日志分割

tomcat日志自动分割(linux)cronolog

linux 下 使用cronolog对Tomcat 输出catalina.out 日志按照自定义日期格式进行切割 亲测可用

Tomcat日志分割减少catalina.out日志过大

linux tomcat 日志分割

tomcat Catalina.ou按日保存日志文件分割方法