Tomcat默认安装后,catalina.out文件会随着时间的增长,越积越多,很容易到达几个G,不仅读写影响性能,给我们查询日志也带来很大的不便,需要使用一些方式分割catalina.out。
1.安装cronolog
# Ubuntu推荐安装
apt-get install cronolog
# CentOS推荐安装
yum install cronolog
# 查看是否安装完成
which cronolog
# 或
whereis cronolog
#结果(记住这个结果,后面会用到)
/usr/sbin/cronolog
2.修改tomcat bin/catalina.sh配置
vim catalina.sh
// 约196行
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
// 修改为(此处表示tomcat生成日志文件名称的格式)
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d
// 约398行
touch "$CATALINA_OUT"
// 修改为(即屏蔽此行)
# touch "$CATALINA_OUT"
// 约412行及420左右,两处
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 "&
// 修改为($CATALINA_OUT即为第一修改处配置的路径)
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /usr/bin/cronolog "$CATALINA_OUT" >> /dev/null &
# 保存退出
:wq!
3.测试
关闭tomcat,清空logs文件夹,启动tomcat,logs下则不再存在catalina.out,取而代之的是catalina.out.%Y-%m-%d.txt,此文件每天生成一个。
4.总结
优点:
①.配置方便,傻瓜式操作;
②.查看其它历史日志非常方便;
③.完美的解决了tomcat日志catalina.out日渐堆积过大的问题。
缺点:
①.在线看本天日志时较麻烦,需要输入今天日志的全文件名,不像原来一样直接查看catalina.out方便;
②.在线修改系统日期后,不会生成一个新的日志文件,日志不会输出到新文件里,所以不要随意更改系统时间。
5.其他方案
使用log4j分割日志,需要在tomcat中使用一些jar包,但是遗憾的是,我参照网上的一些方式进行了配置,但没生效,所以未采用此种方式。