用cronolog分割tomcat的catalina.out文件

用cronolog分割tomcat的catalina.out文件 


最近由于工作需要,tomcat 的catalina.out文件的不断扩大,导致系统磁盘空间边变小,而且管理也难于管理,所以想用一种工具来分割它。网上找了找用cronolog 

安装过程如下: 

下载(最新版本) 

    #  wget http://cronolog.org/download/cronolog-1.6.2.tar.gz 

2、解压缩 

    # tar zxvf cronolog-1.6.2.tar.gz 

3、进入cronolog安装文件所在目录 

    # cd cronolog-1.6.2 

4、运行安装 

    # ./configure 
    # make 
    # make install 

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

    # which cronolog 

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

要想分割tomcat的catalina.out,需作如下工作: 


修改tomcat bin目录下的catalina.sh文件中的 

 

 

org.apache.catalina.startup.Bootstrap “$@” start  \
>> “$CATALINA_BASE”/logs/catalina.out 2>&1 &

 为

 

  org.apache.catalina.startup.Bootstrap "$@" start  2>&1 \
      | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

 

 同时,文件中有一行 

 

touch “$CATALINA_BASE”/logs/catalina.out

 
可以注释掉,完成之后重起Tomcat就可以了, 看logs文件中是否有catalina.2009-07-01.out样式的日志。

 

2011-12-21 更新:

使用tomcat5.5.30版本, catalina.sh文件中的代码有所变化

原内容为:

 org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 &

修改为:

 

  org.apache.catalina.startup.Bootstrap "$@" start  2>&1 \
      | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

 其他没有变化

 

截取某一段时间的日志:

 sed -n '/开始时间/,/结束时间/ p' catalina.out > catalina.out.0119
样例:截取1月19日到当前时间的日志
 sed -n '/2015-01-19/,// p' catalina.outag > catalina.out.0119

 

 

 

你可能感兴趣的:(tomcat)