cronolog对tomcat的catalina.out进行切割(附踩过的坑)

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定时运行。

第一篇博客,工作上的一个小需求,随便写写…

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值