本文介紹tomcat日志輪轉策略,主要依賴Linux系統自帶的logrotate工具實現日志文件的定期管理,避免日志文件無限膨脹。
logrotate配置詳解
logrotate的核心配置位于/etc/logrotate.conf(全局配置)和/etc/logrotate.d/目錄(針對特定服務的配置)。
示例配置(Tomcat catalina.out日志):
以下配置片段展示了如何使用logrotate管理Tomcat的catalina.out日志:
/usr/local/tomcat/logs/catalina.out { daily rotate 7 compress missingok notifempty copytruncate }
參數說明:
- daily:每日輪轉一次。
- rotate 7:保留最近7個日志文件。
- compress:輪轉后壓縮日志文件。
- missingok:日志文件缺失時不報錯。
- notifempty:日志文件非空時才輪轉。
- copytruncate:復制并截斷原日志文件,而非直接刪除。
logrotate工作機制
logrotate通過定時任務掃描配置文件,根據設定的規則(時間、大小等)判斷是否需要輪轉日志。輪轉過程包括:切割日志、壓縮(可選)、移動到指定目錄,并創建新的空日志文件繼續記錄。
執行頻率
logrotate通常由系統cron定時任務每日執行一次,具體頻率可在/etc/cron.daily/logrotate文件中調整。
Tomcat 10及log4j
Tomcat 10可以使用Log4j進行更精細的日志管理,例如按日期滾動記錄日志,實現更靈活的日志文件控制。