把log4j.xml放在tomcat 7上的哪里?

时间:2014-06-05 17:38:15

标签: java maven tomcat struts2

我目前正在开发Java Struts2 webapp(使用Maven)并已成功配置数据源的使用以连接数据库。由于May应用程序需要在环境之间移动(开发> Homologation> Production),它必须使用服务器配置文件来加载参数(例如数据源和日志级别)。

我无法找到有关如何配置java webapp以使用应用程序外部的log4j.xml文件(在WAR之外)的任何参考。使用maven,我只需将log4j.xml放在我的src/main/resources文件夹中,它就会自动加载。我该怎么做才能确保我的webapp在deploy上加载外部log4j.xml文件?

1 个答案:

答案 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://前缀

一起使用