日誌分割的原由 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