我目前正在开发Java Struts2网络应用程序(使用Maven),并且已经成功配置了数据源的使用以与数据库连接。由于May应用程序需要具有在环境之间移动的能力(“开发”>“同质化”>“生产”),因此它必须使用服务器配置文件来加载参数(例如数据源和日志级别)。
我找不到有关如何配置Java Web应用程序以从应用程序外部(WAR之外)使用log4j.xml文件的任何参考。使用maven,我只需将log4j.xml放在我的src/main/resources文件夹中,它将自动加载。如何确保我的Web应用程序在部署时加载外部log4j.xml文件?
src/main/resources
Maven默认将所有文件从src/main/resources放入/WEB-INF/classes/。使用log4j,可以在Web App部署描述符(web.xml)的帮助下指定配置文件的位置。只需添加log4j侦听器:
/WEB-INF/classes/
web.xml
<listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
和上下文参数:
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.xml</param-value> </context-param>
classpath:等价于/WEB- INF/classes,您可以指定任何路径,例如使用${catalina.home}tomcat特定变量。与file://前缀一起使用
classpath:
/WEB- INF/classes
${catalina.home}
file://