Tomcat日志輪轉策略主要依賴于Linux系統自帶的logrotate工具。該工具負責日志文件的定期切割、壓縮和刪除,以保持日志文件的大小和數量在可控范圍內。
/etc/logrotate.conf,包含全局設置。/etc/logrotate.d/,包含針對特定日志文件的配置。對于Tomcat的catalina.out日志文件,一個典型的logrotate配置如下:
/usr/local/tomcat/logs/catalina.out {
daily rotate 7
compress
missingok
notifempty
copytruncate
}
daily:每天輪轉一次日志。rotate 7:保留最近7個日志文件。compress:輪轉后的日志文件進行壓縮。missingok:如果日志文件丟失,不報錯繼續滾動下一個日志。notifempty:日志文件不為空時進行輪轉。copytruncate:創建新的日志文件并截斷舊日志文件,而不是刪除舊日志文件。logrotate工具通過檢查配置文件中指定的日志文件,根據指定的規則(如大小、時間)來決定何時進行日志文件的切割。切割后的日志文件可以壓縮、移動到指定目錄,并創建新的空日志文件繼續記錄。
logrotate通常在系統的cron定時任務中設置自動執行,默認每天運行一次。具體的執行頻率可以在/etc/cron.daily/logrotate文件中配置。
此外,在Tomcat 10中,也可以通過配置Log4j來實現按日期滾動的日志記錄,這樣可以更靈活地管理日志文件。。