Logging

如何為tomcat上部署的每個WAR配置不同的catalina.out日誌

  • June 14, 2019

我有一個執行多個 WAR 的 tomcat 8.5 實例,每個實例都通過System.out控制台將其內部輸出寫入。

現在,tomcat 將所有這些日誌輸出組合在一個文件中:catalina.out,但我想將它們分開。是否可以配置 tomcat 的日誌記錄屬性以在每個 WAR 基礎上創建不同的 catalina.outs,例如

  • app1.war 的控制台輸出 -> catalina-app1.out
  • app2.war 的控制台輸出 -> catalina-app2.out

感謝湯姆

將“swallowOutput”放入您的 context.xml

<Context swallowOutput="true">
...
</Context>

並將一個單獨的 logging.properties 文件添加到您的每個 webapps/wars 的位置

/WEB-INF/classes/logging.properties

如果您的 WAR 是生成的,例如通過 eclipse,您也可以將此文件放在源文件夾中

/src/logging.properties

logging.properties 可能有以下內容

 handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = webapp_name.

java.util.logging.ConsoleHandler.level = FINE

java.util.logging.ConsoleHandler.formatter = java.util.logging.OneLineFormatter

您可以為每個單獨的 webapp 日誌定義名稱前綴org.apache.juli.FileHandler.prefix

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