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

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

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

Maven默认将所有文件从src/main/resources放入/WEB-INF/classes/ 。 使用log4j,您可以借助Web App Deployment Descriptor( web.xml )指定配置文件的位置。 只需添加log4j监听器:

  org.springframework.web.util.Log4jConfigListener  

和上下文参数:

  log4jConfigLocation classpath:log4j.xml  

classpath:相当于/WEB-INF/classes ,你可以指定任何路径,例如,使用${catalina.home} ,一个tomcat特定的变量。 与file://前缀一起使用