我希望能夠根據我部署我的Java Web應用程序的服務器在不同的級別進行登錄。例如,在我的測試服務器上,我想登錄DEBUG級別,在我的生產服務器上,我想登錄WARN級別。目前我的log4.xml文件位於我的WAR文件中。我希望能夠使用Tomcat上下文參數來配置我的Web應用程序的日誌記錄級別。這可能嗎?我可以使用Tomcat上下文參數配置Log4j嗎?
我已經看到可以使用環境變量和系統屬性。例如,獲得解釋$ {catalina.home}。這個功能是否可用於替換Tomcat上下文參數值?
例如,這將是的log4j.xml片段:
<level value="${log.level}"
凡log.level在%TOMCAT_HOME%/ CONF/context.xml中定義:
<Parameter name="log.level" value="DEBUG" />
我已經嘗試了以上,它似乎並沒有工作。 Google沒有爲我在log4j配置文件中使用上下文參數提供任何幫助。我發現this SO question使用系統屬性做類似的事情,但它不使用Tomcat的上下文參數,所以它不是我想要的。在log4j配置中是否可以使用上下文參數值替換功能?我是否需要探索其他選項,例如使用外部log4j.xml文件?
我們最終使用外部日誌配置文件使用[Log4jWebConfigurer](http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/util/Log4jWebConfigurer.html )和log4jConfigLocation屬性的文件值,如file:/path/to/log4j.xml。後來我們決定切換到Logback,我們使用了Spring Extension for Logback,它有一個類似的屬性叫做logbackConfigLocation。這使我們可以爲我們部署的不同環境使用不同的配置文件。 – BennyMcBenBen 2012-09-28 02:39:47