`

tomcat 日志切割

 
阅读更多

atalina.out文件会越来越大,虽然Tomcat每日会生成一个catalina.ymd.log的文件,但catalina.out主文件仍然不断增加,需要对catalina.out按日切分才好,在网上找了一下,看到一篇《rotating catalina.out in tomcat 5.5 using cronolog》,就用公司的Tomcat配置一下。 
cronolog工具已经在服务器上装过,一个对日志切分的小工具,其主页在http://cronolog.org/,我们也用它来切分Apache的日志。 

进入Tomcat的bin目录,打开catalina.sh文件,找到tomcat启动的相关行,或者你直接查找catalina.out,一般我们修改下面行中的内容(因为我们一般不会在-security条件下运行), 










10 
11 
12 
13 
    else 
    “$_RUNJAVA” $JAVA_OPTS $CATALINA_OPTS \ 
    -Djava.endorsed.dirs=”$JAVA_ENDORSED_DIRS” -classpath “$CLASSPATH” \ 
    -Dcatalina.base=”$CATALINA_BASE” \ 
    -Dcatalina.home=”$CATALINA_HOME” \ 
    -Djava.io.tmpdir=”$CATALINA_TMPDIR” \ 
    org.apache.catalina.startup.Bootstrap “$@” start  \ 
    >> “$CATALINA_BASE”/logs/catalina.out 2>&1 & 

    if [ ! -z "$CATALINA_PID" ]; then 
    echo $! > $CATALINA_PID 
    fi 
    fi 
修改 
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-02-18.out的日志,是按日生成的。 





rotating catalina.out in tomcat 5.5 using cronolog 
Submitted by theCamel on Tue, 08/14/2007 - 16:25. 
Tags: Tomcat 
Cronolog provides a solution to the age-old problem of tomcat's catalina.out log file not rotating and growing so large that the server must be stopped to deal with it. 
First, install cronolog, which can be downloaded from here. 

the cronolog command works like this: 

cronolog [OPTIONS] logfile-spec 

a simple example is: 

cronolog /logs/catalina.out.%Y-%m-%d 

so once output is piped to cronolog, it will create a logfile that looks like: 

catalina.out.2007-08-14 

and when the date changes, it creates a new file: 

catalina.out.2007-08-15 

so to configure, in the catalina.sh replace this string: 

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


with this: 

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


and the catalina.out will now be rotated daily and stored in the path we specified "/logs". If you wish to keep the logs in the tomcat logs dir, just specify that path in the cronolog command in catalina.sh 

| cronolog "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d >> /dev/null & 


I also removed this line from catalina.sh: 

touch "$CATALINA_BASE"/logs/catalina.out 


as it would no longer be necessary. 

so now instead of one gigantic, ever-growing catalina.out, I have this: 


catalina.2007-08-10.log 
catalina.2007-08-11.log 
catalina.2007-08-12.log 
catalina.2007-08-13.log 
catalina.2007-08-14.log 
catalina.2007-08-15.log 


and all my old log-removal scripts can work and I no longer have to stop the tomcat server just to deal with a log file...

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics