Logging

如何關閉所有tomcat日誌輪換

  • January 24, 2018

我想使用 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

其他參考:

引用自:https://serverfault.com/questions/892824