1、环境:ubuntu 14.04
2、安装cronolog
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure --prefix=/usr/local/cronolog
make && make install
包随便找找:https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz
或者第二种。
sudo apt-get install cronolog
省事省心…
注:没搞明白为什么我按照第一种方法没成功,最后which cronolog没任何反应…
按照第二种安装后which cronolog地址会在/usr/bin/cronolog
别的博客按照第一种做目录地址会和这里不一样。看着替换就是了。
3、修改tomcat配置文件
3.1
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
改为
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out
fi
注:这里可以自定义格式,你可以设置一下单纯“%Y-%m-%d.out”也可以改到别的目录。
3.2
touch "$CATALINA_OUT"
注释掉,改为
#touch "$CATALINA_OUT"
3.3
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 "&"
改为
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
|/usr/bin/cronolog "$CATALINA_OUT" >> /dev/null &
3.4
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 "&"
改为
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
|/usr/bin/cronolog "$CATALINA_OUT" >> /dev/null &
注:cronolog地址按照你安装后which cronolog的地址,|/usr/bin/cronolog 前面有个“|”竖杠,别忽略了。
4、修改权限
如果像我这样用第二种apt-get安装的,免不了用sudo,然后cronolog就变成了root所属。运行tomcat会提示permission denied。
解决方法:
sudo chown 所属者:所属组 /usr/bin/cronolog
sudo chown 所属者:所属组 /usr/bin/cronospilt
5、重启Tomcat
6、ps -ef | grep tomcat你会看到除了一个tomcat还有一个cronolog一起在运行就ok了。然后去logs下看catalina文件就是你要的时间格式文件了。
7、总结
百度看下来解决catalina.out文件过大一般是四种方式:
1)log4j配置tomcat,这种方式解决不了我的环境需要,我配这种方式后tomcat启动信息是按时间格式的文件写入去了,但是系统打印的System.out.println还是输出到了catalina.out。没有解决我的问题。而且研究了很久发现,文件也没有达到配置的指定大小后自动分割文件。我甚至将catalina.sh指定的catalina.out文件指向到了一起(将控制台打印也重定向),全部写入到一起让log4j管理也不行。头大,放弃。
2)cronolog分割catalina.out。这次按照博客的方法去配置了,但是遇到坑了,安装不了,后来用apt安装解决了,又遇到permission denied,又去找了一下,发现是安装后root权限问题。解决了,写个文章让别人少踩点坑。
3)Logrotate,没研究。自行百度。
4)最适合自定义的方式,写个切割脚本,crontab定时运行。
第一篇博客,工作上的一个小需求,随便写写…