解決catalina.out文件過大的方法


用Tomcat的人,絕對都會遇到這樣一個問題:catalina.out文件過大。

它是Tomcat默認生成的日志文件,會隨着時間的推移,逐漸增大,不斷的增長,甚至達到幾G,幾十G的大小。由於文件過大,不僅占系統的存儲,我們還將無法使用過常規的編輯工具進行查看,嚴重影響系統的維護工作。

對此,出現了以下幾種解決catalina.out文件過大的方案。

 

簡潔型
1.手動版
每次監控到tomcat的硬盤空間變小達到閾值,手動登陸服務器,切換到tomcat的logs下,手動清空

echo " " > catalina.out

2.腳本版
編寫腳本,放入計划任務中,定時清空

crontab -e 
0 24 * * * sh /root/qin_catalina.out.sh

vim qin_catalina.out.sh
#!/usr/bin/bash 
echo " " > catalina.out



技術型
1.日志切割工具版0.1

使用cronolog日志切分工具切分Tomcat的catalina.out日志文件

<1>下載cronolog,並進行安裝

wget http://cronolog.org/download/cronolog-1.6.2.tar.gz (中國服務器可能無法下載或下載緩慢,可先下載到境外服務器上)

tar zxvf cronolog-1.6.2.tar.gz

./cronolog-1.6.2/configure

make

make install

(默認安裝在/usr/local/sbin下)

<2>.配置

在tomcat/bin/catalian.sh中

org.apache.catalina.startup.Bootstrap "$@" start \ >> "$CATALINA_BASE"/logs/catalina.out 2&1 &

改成:
org.apache.catalina.startup.Bootstrap"$@" start \ |/usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null 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_OUT" 

<3>重啟Tomcat
Tomcat輸出日志文件分割成功,輸出log文件格式變為:catalina.2017-05-15.out

 

1.日志切割工具版0.2

CentOS6.5后自帶logrotate程序,可以解決catalina.out的日志輪轉問題

<1>在/etc/logrotate.d/目錄下新建一個tomcat的文件

cat >/etc/logrotate.d/tomcat

/usr/local/tomcat/logs/catalina.out{ 要輪轉的文件
copytruncate 創建新的catalina.out副本,截斷源catalina.out文件
daily 每天進行catalina.out文件的輪轉
rotate 7 至多保留7個副本
missingok 文件丟失了,輪轉不報錯
compress 使用壓縮
size 16M 當catalina.out文件大於16MB,就輪轉
}

<2>當執行以上操作時是自動執行的,也可手動切割

logrotate /etc/logrotate.conf

如果只輪轉tomcat配置文件,要指定文件

logrotate --force /etc/logrotate.d/tomcat

<3>刪除要清理的日志

手工查找需要清理的日志文件

cd /usr/local/tomcat/logs
rm -rf catalina.out.4.gz

2.日志切割腳本版

使用cron每天來定時備份當前的catalina.out,然后清空他的內容;
<1>crontab -e

30 * * * * sh /root/qie_catalina.out.sh

<2>cat qie_catalina.out.sh 參考腳本

#!/bin/bash 
y=`date "+%Y"`
m=`date "+%m"`
d=`date "+%d"`

cp /etc/tomcat/logs/catalina.out /etc/tomcat/logs/`catalina.out.$y_$m_$d`

echo " " > catalina.out

3.修改日志級別版

日志級別:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)

<1>修改conf/logging.properties日志配置文件,將level級別設置成WARNING減少日志的輸出。也可以設置成OFF,直接禁用。

catalina.org.apache.juli.FileHandler.level = WARNING

catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

catalina.org.apache.juli.FileHandler.prefix = catalina.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM