Tomcat日志分割

Tomcat服务启动后会在logs目录里生成catalina.out文件而且一直累积,到后来越来越大,不利于查看log信息。
使用cronolog进行日志切割,将日志切割成一个个文件。

1、下载(最新版本)cronolog

1
# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz

2、解压缩

1
# tar zxvf cronolog-1.6.2.tar.gz

3、进入cronolog安装文件所在目录

1
2
3
# cd cronolog-1.6.2
发现缺很多包,安装之
# yum install gcc cc aclocal autoconf automake autoheader makeinfo

4、运行安装

1
2
3
# ./configure
# make
# make install

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

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

6、catalina.sh文件修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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_BASE"/logs/catalina.out.%Y-%m-%d_%H.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_BASE"/logs/catalina.out.%Y-%m-%d_%H.out>> /dev/null &
fi