Tomcat7 catalina.out 日志分割

Tomcat7 catalina.out 日志分割

安装过程如下:
1、下载(最新版本)
 cronolog-1.6.2.tar.gz

2、解压缩
    # tar zxvf cronolog-1.6.2.tar.gz
3、进入cronolog安装文件所在目录
    # cd cronolog-1.6.2
4、运行安装
   # yum –y install gcc
    # ./configure
    # make
    # make install
5、查看cronolog安装后所在目录(验证安装是否成功)
    # which cronolog

一般情况下显示为:/usr/local/sbin/cronolog

6、要想分割tomcat7的catalina.out,需作如下工作:

进入Tomcat的bin目录,打开catalina.sh文件,一般我们修改下面行中的内容(最好用root用户),

(1)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
(2)touch "$CATALINA_OUT"  
if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    eval "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $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
    eval "$_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 "&"   
  fi
  if [ ! -z "$CATALINA_PID" ]; then
    echo $! > "$CATALINA_PID"
  fi
改为:
#  touch "$CATALINA_OUT"  
if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    eval "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $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 2>&1 
      | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
  else
    eval "$_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 
       | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
  fi
  if [ ! -z "$CATALINA_PID" ]; then
    echo $! > "$CATALINA_PID"
  fi

7、保存 catalina.sh 文件,重启 Tomcat 即可。

以后看到 $TOMCAT_HOME/logs/ 下的就是 catalina.2017-01-10.out, catalina.2017-01-11.out ...... 一系列文件,好像 cronolog 又没提供方式来控制归档的日志文件个数。而且这样之后,将不会产生 catalina.out 文件了。

原文地址:https://www.cnblogs.com/wangchunniu1314/p/6418620.html