日志切割本来简单的事情,不过几番周折才搞定,惭愧!本来线下测试没问题,线上部署一堆错误。 线下环境: centos5.8 32位、tomcat 7.0.21、 jdk1.7 (根据网上的资料测试很顺利通过) 线上环境: centos 6.3 64位、tomcat 7.0.21 、jdk1.6 (测试不通过,启动报错。网上的资料基本一大抄,从来不实践?坑爹啊。不过最终问题解决,很奇葩) 下载cronolog
# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz 2、解压缩
# gunzip cronolog-1.6.2.tar.gz
# tar -xvf cronolog-1.6.2.tar
3、进入cronolog安装文件所在目录
# cd cronolog-1.6.2
4、运行安装
# ./configure
# make
#sudo make install
注意make install 需要root权限 5、查看cronolog安装后所在目录(验证安装是否成功)
# which cronolog
一般情况下显示为:/usr/local/sbin/cronolog 要想分割tomcat的catalina.out,需作如下工作: 1. touch “$CATALINA_BASE”/logs/catalina.out |
可以注释掉,完成之后重起Tomcat就可以了 2.修改catalina.sh中的 org.apache.catalina.startup.Bootstrap “$@” start \
>> “$CATALINA_BASE”/logs/catalina.out 2>&1 & |
请注意,修改后把这两行删掉(此处是关键,而且比较奇葩的地方),而不是注释,否则java会报Usage参数错误 并且/usr/local/tomcat0/bin/catalina.sh: line 396: org.apache.catalina.startup.Bootstrap: command not found org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.log >> /dev/null & |
请注意,连接符\后不能留空格,否则会报 “/usr/local/tomcat0/bin/catalina.sh: line 395: syntax error near unexpected token `|' /usr/local/tomcat0/bin/catalina.sh: line 395: ` | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/all.%Y-%m-%d.log >> /dev/null &'”错误。 ,
看logs文件中是否有catalina.2013-07-13.log样式的日志,这样就可以每日轮转了~
|