問題:為什麼需要歸檔?
如果
catalina.out 日志達到 2GB 大小的時候,Tomcat 因為緩存問題,便沒有辦法繼續輸出日志了。
為了避免這種情況,你需要及時對 catalina.out 進行歸檔。
問題:tomcat自身對日志內容進行歸檔,為什麼日志還是會越來越大
實際上 Tomcat 自身也會對日志內容進行歸檔,但是歸檔後,Tomcat 不會清理 catalina.out 的內容,這將會導致 catalina.out 越來越大
解決方案
使用場景:
Linux/Unix
使用方式:采取logrotate日志輪詢
執行命令:
vi /etc/logrotate.d/tomcat
輸入以下內容:
/opt/apache-tomcat-8.0.15/logs/catalina.out{
rotate 10
copytruncate
daily
dateext
nocompress
missingok
notifempty
}
參數功能:
-
copytruncate 用於還在打開中的日志文件,把當前日志備份並截斷
-
daily 指定轉儲周期為每天
-
dateext 使用日期作為命名格式,切換後的日志文件會附加上一個短橫線和YYYYMMDD格式的日期
-
例:error.log-20150506,沒有這個配置項會附加一個小數點加一個數字序號
-
nocompress 不需要壓縮時,用這個參數
-
missingok 如果日志不存在則忽略該警告信息
-
notifempty 表示如果log文件是空的,就不進行rotate
完成上面的工作後,你可以不需要在你的操作系統中做任何工作,
日志歸檔程序將會每天對你的日志進行歸檔的。
執行命令
/usr/sbin/logrotate -f /etc/logrotate.conf
執行命令後,在/opt/apache-tomcat-8.0.15/logs/裡面會存在catalina.out-20150605,而catalina.out的大小變為了0