tomcat的下的日誌catalina.out 和 qc.log瘋狂增長,以下是解決辦法
我生產環境tomcat版本
Server version: Apache Tomcat/7.0.35
Server number: 7.0.35.0
OS Name: Linux
OS Version: 2.6.18-194.el5
Architecture: amd64
JVM Version: 1.7.0_13-b20
一、catalina.out
1.修改日誌輸出級別(未驗證)
位置 conf/logging.properties
1catalina.org.apache.juli.FileHandler.level =
FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
修改日誌級別 將FINE 改爲OFF,或者WARNING;
每類日誌的級別分爲如下 7 種:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
2.將日誌輸出到 /dev/dull
查找一下在 tomcat/bin/catalina.sh 中相關配置
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi
……
touch "$CATALINA_OUT"
if [ "$1" = "-security" ] ; then
if [ $have_tty -eq 1 ]; then
echo "Using Security Manager"
fi
shift
eval \"$_RUNJAVA\" \"$LOGGING_CONFIG\" $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\" $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" 2>&1 &
爲
>> /dev/null 2>&1 &
3.分割後清空日誌
使用cronolog工具切割日誌
下載安裝cronolog
修改tomcat/bin/catalina.sh 中相關配置 (參照2中代碼)
註釋掉
# touch "$CATALINA_OUT"
修改以上代碼中的
>> "$CATALINA_OUT" 2>&1 &
爲
>> | /bin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
重啓tomcat
刪除日誌參考 二 中腳本
4.手動刪除
關閉tomcat。手動刪除日誌,重啓
二、qc.log 日誌
直接腳本刪除,只保留最近三天
#! /bin/bash
logdir=/usr/local/tomcat/webapps1
cd ${logdir}
declare -i filesum=`ls qc.log.* | wc -l`
declare -i delnum=$filesum-3
if [ "${delnum}" -ge 1 ];then
rm -rf `ls -tr qc.log.* | head -${delnum}`
fi
~