网络上找了一下,针对在 Linux 环境下执行 Tomcat 的部份,发现有个不错的工具软件 cronolog 可以协助 Web Server 之类的做 log  檔的 rotate ,详细的运作原理可能大家得自己去这个网站上查,我的认知大致如下:  

Tomcat 先把输出写到 console( 标准输出  然后透过 pipe (|)  转为 cronolog  的输入,由 cronolog 针对一个事先给定的文件名的命名规则,去过滤数据,定期关闭旧文件,然后再开启新档。如果我们将文件名的命名规则设为 catalina.out.%Y-%m-%d ,就可以做到每天开一个新的 catalina.out.yyyy-mm-dd 的档案了。  

 在Windows下安装cronolog

在Windows下很简单,解压后直接把cronolog.exe复制到apache目录下的bin目录中就可以了.

 

 安装 cronolog 

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

tar zxvf cronolog-1.6.2.tar.gz

cd cronolog-1.6.2

./configure

make

make install

用 which cronolog 可以查到安装的路径,默认应该是 /usr/local/sbin/cronolog ,这个路径待会在修改 catalina.sh时会用到。  

 修改 catalina.sh 

以 Tomcat 6.0.24 的版本为例  

2.1  第一步

if [ -z "$CATALINA_OUT" ] ; then

   CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out

fi

修改为  

if [ -z "$CATALINA_OUT" ] ; then

   CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d

fi

2.2  第二步

将  

touch "$CATALINA_OUT"

改为  

#touch "$CATALINA_OUT"               //也就是注销掉这一行

2.3  第三步

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 &

2.4  重新启动 Tomcat 

service tomcat restart

可以在 Tomcat 的 logs 目录底下找到以系统日期为结尾的 catalina.out.yyyy-mm-dd 的档案,这样子就成功了。


另一个解决方案:

 

http://rwl6813021.iteye.com/blog/752416

 

一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。

可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息。

 

1catalina.org.apache.juli.FileHandler.level= WARNING

1catalina.org.apache.juli.FileHandler.directory= ${catalina.base}/logs

1catalina.org.apache.juli.FileHandler.prefix= catalina.

 

将level级别设置成WARNING就可以大量减少日志的输出,当然也可以设置成OFF,直接禁用掉。

 

一般日志的级别有:

SEVERE (highest value) >WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)