日志分割的原由 apache
随着时间的推移,catalina.out这个文件的尺寸将会愈来愈大,当须要检查日志内容时会致使文件难以打开,并且同时tomcat依旧在不断的向文件中输入内容,这也会下降tomcat的性能。所以将tomcat产生的catalina.out文件根据日期来分割,将天天产生的日志存放在一个独立的文件中,这样单个log文件就不会太大,并且过时的日志文件能够根据状况删除掉,或者备份到其余地方。(听说tomcat有默认的日志分割功能,能天天自动生成相似catalina.2010-10-08.log的文件,可是默认catalina.out文件却一直增加.) tomcat
以切分tomcat的catalina.out的日志为例 性能
1安装cronolog spa
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz .net
tar zxf cronolog-1.6.2.tar.gz 日志
cd cronolog-1.6.2 get
./configure class
make && make install 方法
用which cronolog能够查到安装的路径,默认应该是/usr/local/sbin/cronolog,这个路径待会在修改catalina.sh时会用到。以下: touch
[root@localhost cronolog-1.6.2]# which cronolog
/usr/local/sbin/cronolog
2修改catalina.sh 这是重点
以Apache Tomcat/7.0.42为例
第一步:
将
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
第二步:
将
touch "$CATALINA_OUT"
修改成
# touch "$CATALINA_OUT"
第三步:
将
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 & 总共有两处
3重启tomcat
在日志目录下就会多了一个catalina.2014-06-12.out的日志
日志切割成功
附:
以tomcat 6.0.20为例
按上面方法先安装cronolog
再修改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
改成
# touch "$CATALINA_BASE"/logs/catalina.out
重启TOMCAT