天天看點

禁止向tomcat的catalina.out日志中輸出日志腳本(Linux)

打開tomcat的bin目錄下的catalina.sh檔案。

!!!修改前注意原檔案的catalina.sh的備份~!!!

CTRL+F查詢,查詢條件為括号中内容

org.apache.catalina.startup.Bootstrap "$@" start \
           

然後定位到該内容處

? ?eval "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
? ? ?-Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
? ? ?-Djava.security.manager \
? ? ?-Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
? ? ?-Dcatalina.base="\"$CATALINA_BASE\"" \
? ? ?-Dcatalina.home="\"$CATALINA_HOME\"" \
? ? ?-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
? ? ?org.apache.catalina.startup.Bootstrap "$@" start \
? ? ?>> "$CATALINA_OUT" 2>&1 "&"
?else
? ?eval "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $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_OUT" 2>&1 "&"
           

這裡是把背景輸出日志寫入catalina.out檔案的;

修改以上代碼中的中的

儲存,然後重新開機tomcat,然後這個 catalina.out檔案就一直是空的了。

有時甲方要求catalina.out日志必須保留一段時間,是以我們不能直接删除或直接禁止向catalina.out中輸出内容(是以不能使用上面的腳本),但是我們可以使用下面腳本,添加定時任務,每隔一段時間清空一下catalina.out中内容:

下面的路徑為假路徑,真實環境中要以catalina.out的實際路徑為準!

#!bin/bash
	echo -n "">/home/apps/tomcat/logs/catalina.out   
           

不能直接删除catalina.out日志,如果删除了這個日志,tomcat不重新開機,這個檔案雖然表面看起來是沒了,但是實際上還是在占用系統記憶體,系統還是在不斷向這個檔案中寫入日志,時間長了會導緻系統卡死而且不太容易排查(主要排查方法就是兩個指令 df -h 和 du -h ,這兩個指令執行的結果不同,從這一點可以發現問題)。而tomcat重新開機以後還是會重新生成catalina.out日志檔案。