我目前正在开发Java Struts2 webapp(使用Maven)并已成功配置数据源的使用以连接数据库。由于May应用程序需要在环境之间移动(开发> Homologation> Production),它必须使用服务器配置文件来加载参数(例如数据源和日志级别)。
我无法找到有关如何配置java webapp以使用应用程序外部的log4j.xml文件(在WAR之外)的任何参考。使用maven,我只需将log4j.xml放在我的src/main/resources
文件夹中,它就会自动加载。我该怎么做才能确保我的webapp在deploy上加载外部log4j.xml文件?
答案 0 :(得分:4)
默认情况下,Maven会将src/main/resources
中的所有文件放入/WEB-INF/classes/
。使用log4j,您可以借助Web App Deployment Descriptor(web.xml
)指定配置文件的位置。只需添加log4j监听器:
<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://
前缀