本文主要讲述使用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的日志文件生成,定期删除日期较旧的日志文件。
【参考资料】