背景

tomcat产生的catalina.out日志文件如果不进行分割处理的话,往往会导致文件越来越大,影响效率。同时如需查找日志文件的时候,在那么大的catalina.out日志文件中查找也比较费事,最好是按天来分割catalina.out日志文件。下面来介绍一种分割方法:使用cronolog来分割catalina.out日志文件

方法

  • 安装cronolog-1.6.2.tar.gz

下载地址:cronolog-1.6.2.tar.gz

tar -zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configre # --prefix=/opt/cronolog ,可以指定安装目录,默认在 /usr/local/sbin/cronolog
make
make install
  • tomcat配置

Tomcat7以前的版本:

vim tomcat/bin/catalina.sh
# 注释掉(#)
touch “$CATALINA_BASE”/logs/catalina.out
# 修改tomcat bin目录下的catalina.sh文件中的两处
org.apache.catalina.startup.Bootstrap “$@” start \
>> “$CATALINA_BASE”/logs/catalina.out 2>&1 &
# 为
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

完成之后重起Tomcat就可以看到logs文件中存在catalina.out.2015-09-13样式的日志。

Tomcat7以后的版本:

vi tomcat/bin/catalina.sh
#第一步
将
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
# 第二步
将
touch "$CATALINA_OUT"
改为
#touch "$CATALINA_OUT"
echo "$CATALINA_OUT"
# 第三步
将
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 &
修改为
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &

完成之后重起Tomcat就可以看到logs文件中存在catalina.out.2021-09-01样式的日志。