Cronolog 分割 Tomcat8 Catalina.out日志。
默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个catalina.out,这样日积月累就会造成.out日志越来越大,给管理造成了不便,为了实现像其它日志文件一样按日期归档,这里我采用cronolog来完成日志分割。
未修改之前的日志
安装Cronolog
1 YUM安装
yum -y install cronolog
2 源码安装
tar -xf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make && make install
检查是否安装成功
[root@hk logs]# which cronolog
/usr/local/sbin/cronolog
修改tomcat配置文件
vim /usr/local/tomcat/bin/catalina.sh
修改为:
#touch "$CATALINA_OUT"if [ "$1" = "-security" ] ; thenif [ $have_tty -eq 1 ]; thenecho "Using Security Manager"fishifteval "\"$_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-%Y-%m-%d.out" >>/dev/null &elseeval "\"$_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-%Y-%m-%d.out" >>/dev/null &fi
重启Tomcat,查看是否生效
编写脚本利用定时任务删除30天前的日志
vim tomcat_log_del.sh
find /usr/local/tomcat/logs/ +mtime +30 -name “*.out” |xargs rm -f