如何關閉所有tomcat日誌輪換
我想使用 logrotate 管理我的伺服器上的日誌輪換,但是 Tomcat 執行自己的日誌輪換,它與 logrotate 互動很糟糕,我找不到關閉它的方法。我的 Tomcat 實例目前產生 5 種類型的日誌:
- catalina.2018-01-17.log
- mysite_access.2018-01-17.log
- localhost.2018-01-17.log
- 主機管理器.2018-01-17.log
- manager.2018-01-17.log
經過一番Google搜尋後,我發現我可以通過在 server.xml 中添加
rotatable="false"
適當的<Value>
元素來禁用“mysite”日誌的輪換,但其他日誌都沒有相應的<Value>
元素。日誌似乎是由 logging.properties 文件配置的,但我找不到該文件的“關閉輪換”選項。任何人都可以幫忙嗎?我正在使用 Tomcat 8.5
您可能在您的 tomcat 實例中使用 JULI 日誌記錄作為預設值。試試這個
1catalina.org.apache.juli.FileHandler.rotatable = false
在 logging.properties 中。
如果您搜尋該屬性,則線上有一些範例。
如果您沒有將這些日誌用於任何事情,您可以刪除或重命名 logging.properties 文件以停止使用 JULI 日誌記錄。
我認為你是從錯誤的角度來看待它的。本質上沒有什麼新奇的東西
logrotate
,事實上,它通常cron
每天執行一次,這可能會導致你不知道為什麼你的方向不起作用的有趣情況logrotate
。這裡最好的方法可能是保留預設值
tomcat
(例如,實際上,對於各種備份目的更友好),並使用使用文件修改時間執行輪換的簡單腳本進行輪換(例如,find /var/tomcat/logs/ -mtime +5 -name "*.log" -exec echo rm {} \;
刪除echo
真實的東西)。根據相關問題,您還可以在 / 的/指令中配置上述
find
程式碼段,或者更好的是,將其直接放入您自己的時間執行。lastaction``endscript``logrotate``cron
其他參考: