Linux下Tomcat日志分割

Posted shidian

tags:

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

本文主要讲述使用cronolog分割tomcat的catalina.out文件。

1. 下载编译安装

wget https://files-cdn.cnblogs.com/files/shidian/cronolog-1.6.2.tar.gz
tar zxvf cronolog-1.6.2.tar.gz 
cd cronolog-1.6.2./configure 
make 
make install

 2. 查看cronolog安装后所在目录(验证安装是否成功)

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

 如下图所示:

技术图片

3. 编辑Tomcat目录bin下的catalina.sh文件

找到下面这个,类似这样的行有2处:

org.apache.catalina.startup.Bootstrap "$@" start >> "$CATALINA_OUT" 2>&1 "&"

 

第一处:Tomcat是带"-security"参数的启动。

第二处:默认Tomcat启动方式,也就是else下面那部分,我们只修改这里。

另外还要把touch "$CATALINA_OUT"这样注释掉。

修改后的结果如下所示:

#  touch "$CATALINA_OUT"
  if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    eval $_NOHUP "\\"$_RUNJAVA\\"" "\\"$LOGGING_CONFIG\\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS       -D$ENDORSED_PROP="\\"$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 $_NOHUP "\\"$_RUNJAVA\\"" "\\"$LOGGING_CONFIG\\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \\
#      -D$ENDORSED_PROP="\\"$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 "&"


    "$_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 /opt/tomcat/apache-tomcat-9.0.13/logs/catalina.%Y%m%d.out >> /dev/null &
  fi

 

将原来else的脚本屏蔽掉,加入后面的这段代码。

4. 重启Tomcat

重启后logs目录如下所示:

技术图片

配置cronolog完成了,观察每天是否有个新的catalina.yymmdd.out的日志文件生成,定期删除日期较旧的日志文件。

 

【参考资料】

https://blog.51cto.com/12924846/2351032

 

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

linux 怎么把tomcat日志按日期分割

tomcat日志自动分割(linux)cronolog

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

linux tomcat 日志分割

Tomcat的日志分割三种方法

使用logrotate分割tomcat日志