Linux环境下tomcat的catalina.out日志按日分割生成实现

         最近线上的项目因为同一个tomcat安装了多个工程,并且工程中存在循环调用打印接口日志的情况,造成了tomcat的catalina.out异常庞大,不到一个月时间,竟然达到了快8G。刚好发生异常情况需要查看该日志,发现普通的编辑工具都打不开。于是想到把日志分割为多个小的日志,网上找到工具:超大文件分割工具-Ultra File Splitter 4.03中文绿色版。用还是好用,但是这样也不是办法啊。如果后面单个日志文件太大,总有一天会撑爆硬盘,于是再找资料,发现了cronolog,一款可以让linux环境的tomcat的catalina.out文件安装特定规则(比如日期)生成不同的日志文件的工具。

具体的使用如下:

Tomcat输出catalina.out文件,数据主要来源为:System.out 和 System.err 在控制台上直接输出的信息。为了减少日志输出的压力,规范代码习惯,编码时应避免使用System.out.println()和e.printStackTrace()。

使用cronolog工具分割
A、 cronolog工具下载
官方 http://cronolog.org/download/index.html
B、 cronolog编译安装
[TSP@tsp-dev-webservice ~]$ tar xvf cronolog-1.6.2.tar.gz
[TSP@tsp-dev-webservice cronolog-1.6.2]$ ./configure
[TSP@tsp-dev-webservice cronolog-1.6.2]$ make
[TSP@tsp-dev-webservice cronolog-1.6.2]$ sudo make install

查看cronolog安装后所在目录(验证安装是否成功)

# which cronolog

一般情况下显示为:/usr/local/sbin/cronolog


C、 修改Tomcat启动脚本catalina.sh 
a、 修改输出日志路径
修改:
 if [ -z "$CATALINA_OUT" ] ; then
      CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi
为:
    if [ -z "$CATALINA_OUT" ] ; then
      CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out
fi
b、 删除生成日志文件
注释:
touch "$CATALINA_OUT"
  为:
#touch "$CATALINA_OUT"
c、 修改启动脚本参数(
有2处
修改:
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"
    为:
      org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
      | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &

D、 重启Tomcat
Tomcat输出日志文件分割成功,输出log文件格式为:catalina.2014-08-15.out 类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值