本文出自:web应用

用cronolog分割tomcat的catalina.out文件
 
    #  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中找到2行:

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



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


同时,上面有一行

Java代码
touch “$CATALINA_BASE”/logs/catalina.out

vi /usr/local/tomcat/conf/logging.properties 
注掉:catalina.org.apache.juli.FileHandler.prefix = catalina. 
可以注释掉,完成之后重起Tomcat就可以了,
看logs文件中是否有catalina.2009-09-03.out样式的日志。


way2:
使用log4j成功使catalina.out文件实现分割。
在tomcat根目录下建立common/classes/log4j.properties,内容如下:
############################################################################
log4j.rootLogger=INFO, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/tomcat.newlog  #设定日志文件名
log4j.appender.R.MaxFileSize=100KB   #设定文件到100kb即分割
log4j.appender.R.MaxBackupIndex=10   #设定日志文件保留的序号数
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
############################################################################
在tomcat根目录下的common/lib下加入log4j.jar和commons-logging.jar
重新启动tomcat即可。

对了,还看到另外一种解决方法,纯shell实现的.
编写一个.sh文件,并放到tomcat下的bin目录,在cron中自动执行,shell脚本如下:
#!/bin/bash

cd  `dirname $0`
d=`date +%Y%m%d`
d7=`date -d'7 day ago' +%Y%m%d`

cd  ../logs/

cp catalina.out catalina.out.${d}
echo "" > catalina.out
rm -rf catalina.out.${d7}