翻了下收藏夾,順手整理到這里來。
catalina.out文件會越來越大,對系統的穩定造成了一定的影響。conf/logging.properties
一般在部署Tomcat后,運行久了,catalina.out文件會越來越大,對系統的穩定造成了一定的影響。
可通過修改conf/logging.properties日志配置文件來屏蔽掉這部分的日志信息。
1 |
catalina.org.apache.juli.FileHandler.level = WARNING |
2 |
catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs |
3 |
catalina.org.apache.juli.FileHandler.prefix = catalina. |
將level級別設置成WARNING就可以大量減少日志的輸出,當然也可以設置成OFF,直接禁用掉。
一般日志的級別有:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
來自:
http://rwl6813021.iteye.com/blog/752416
Linux下的tomcat產生的日志文件不象windows下的按時間時間和大小來處理,
盡管也生成了日志文件catalina.2009-0x-0x.log類型的文件,但是其中的catalina.out文件依然增大;它為啥在增大,為啥在增大,原因我就不探究了。
Tomcat的官方文檔,由於是外文,偶還沒有看明白di;
http://tomcat.apache.org/tomcat-6.0-doc/logging.html
據說是修改某些配置可以實現,希望高人指點,給個官方的解決方案;
老是增大也不是辦法,還是想其他辦法搞定它為好:
方法1—分割流
使用cronolog工具切分Tomcat的catalina.out日志文件
cronolog一個對日志切分的小工具,其主頁在http://cronolog.org/,我們也可以用它來切分Apache的日志。
具體的方法,您可以去google之,這個方法占網絡搜索結果的主流;
方法2—腳本流
事情終究不過是個大文件處理的問題,強大的bash來搞定;
使用cron每天來備份當前的catalina.out,然后清空他的內容;
參考腳本如下:
1 |
#!/bin/sh |
2 |
y=` date "+%Y" ` |
3 |
m=` date "+%m" ` |
4 |
d=` date "+%d" ` |
5 |
cd /PATH /tomcat/logs |
6 |
cp catalina.out catalina.out.$y$m$d |
7 |
echo > catalina.out |
8 |
exit |
注意linux系統的cron服務是否啟動,是否正常工作,還有腳本的存放路徑(原因暫保密)
方法3—猥瑣流
打開bin目錄下的catalina.sh文件,終究不過是個bash文件,
查找一下,catalina.out總共出現三次;
01 |
touch "$CATALINA_BASE" /logs/catalina.out |
02 |
if [ "$1" = "-security" ] ; then |
03 |
echo "Using Security Manager" |
04 |
shift |
05 |
"$_RUNJAVA" $JAVA_OPTS "$LOGGING_CONFIG" $CATALINA_OPTS \ |
06 |
-Djava.endorsed. dirs = "$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ |
07 |
-Djava.security.manager \ |
08 |
- |
09 |
?-Djava.security.policy== "$CATALINA_BASE" /conf/catalina.policy \ |
10 |
-Dcatalina.base= "$CATALINA_BASE" \ |
11 |
-Dcatalina.home= "$CATALINA_HOME" \ |
12 |
-Djava.io.tmpdir= "$CATALINA_TMPDIR" \ |
13 |
org.apache.catalina.startup.Bootstrap "$@" start \ |
14 |
>> "$CATALINA_BASE" /logs/catalina.out 2>&1 & |
15 |
if [ ! -z "$CATALINA_PID" ]; then |
16 |
echo $! > $CATALINA_PID |
17 |
fi |
18 |
else |
19 |
"$_RUNJAVA" $JAVA_OPTS "$LOGGING_CONFIG" $CATALINA_OPTS \ |
20 |
-Djava.endorsed. dirs = "$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ |
21 |
-Dcatalina.base= "$CATALINA_BASE" \ |
22 |
-Dcatalina.home= "$CATALINA_HOME" \ |
23 |
-Djava.io.tmpdir= "$CATALINA_TMPDIR" \ |
24 |
org.apache.catalina.startup.Bootstrap "$@" start \ |
25 |
>> "$CATALINA_BASE" /logs/catalina.out 2>&1 & |
個人覺得也就是這里是寫catalina.out文件的;讓他寫到一個其他的空設備如何?
修改前注意原文件的catalina.sh的備份喲~!!
修改以上代碼中的
>> “$CATALINA_BASE”/logs/catalina.out 2>&1 &
為
>> /dev/null 2>&1 &
保存,然后啟動tomcat,目前這個 catalina.out一直是空的了。
這個方法是偶自己想到的,個人認為比較勇敢,目前還沒有在生產環境測試過。虛擬機測試是通過的。
方法4—人流
這個方法其實就是linux系統管理員手工去刪除,人工操作,簡稱“人流”;
刪除之前最好停止tomcat的服務;