Maven为Eclipse中嵌入的Tomcat过滤web.xml

Maven为Eclipse中嵌入的Tomcat过滤web.xml,eclipse,maven,tomcat,log4j,web.xml,Eclipse,Maven,Tomcat,Log4j,Web.xml,我现在的情况是我需要 1) 具有外部log4j属性 2) log4j.properties的位置在web.xml中配置为属性占位符,属性值从POM读取。 3) 占位符在生成时即创建.war时填充 到目前为止,一切正常-应用程序将log4j定位在POM中指定的位置,并生成日志文件。但是,这仅在应用程序作为.war部署到独立的Tomcat实例时才起作用。下一个需求是能够将它部署到嵌入Eclipse的Tomcat上,据我所知,这一步并不涉及Maven。在部署到嵌入式Tomcat实例时,有没有办法强制w

我现在的情况是我需要 1) 具有外部log4j属性 2) log4j.properties的位置在web.xml中配置为属性占位符,属性值从POM读取。 3) 占位符在生成时即创建.war时填充

到目前为止,一切正常-应用程序将log4j定位在POM中指定的位置,并生成日志文件。但是,这仅在应用程序作为.war部署到独立的Tomcat实例时才起作用。下一个需求是能够将它部署到嵌入Eclipse的Tomcat上,据我所知,这一步并不涉及Maven。在部署到嵌入式Tomcat实例时,有没有办法强制web.xml填充其属性占位符

提前谢谢


安格斯

是的,我最后确实想出了一个解决办法。包括以下配置:

web.xml

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener
    </listener-class>
</listener>

<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>${log4j.properties.location}</param-value>
</context-param>

<context-param>
    <param-name>log4jExposeWebAppRoot</param-name>
    <param-value>false</param-value>
</context-param>

<context-param>
    <param-name>log4jRefreshInterval</param-name>
    <param-value>60000</param-value>
</context-param>

org.springframework.web.util.Log4jConfigListener
log4jConfigLocation
${log4j.properties.location}
log4jExposeWebAppRoot
假的
log4jRefreshInterval
60000
context.xml:

<Parameter name="log4j.properties.location" value="file:/usr/local/etc/xxxxxxxxx/xxxxxxxxxxxxx/log4j.properties"/>


你应该可以走了。

是的,我最后确实想出了一个解决办法。包括以下配置:

web.xml

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener
    </listener-class>
</listener>

<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>${log4j.properties.location}</param-value>
</context-param>

<context-param>
    <param-name>log4jExposeWebAppRoot</param-name>
    <param-value>false</param-value>
</context-param>

<context-param>
    <param-name>log4jRefreshInterval</param-name>
    <param-value>60000</param-value>
</context-param>

org.springframework.web.util.Log4jConfigListener
log4jConfigLocation
${log4j.properties.location}
log4jExposeWebAppRoot
假的
log4jRefreshInterval
60000
context.xml:

<Parameter name="log4j.properties.location" value="file:/usr/local/etc/xxxxxxxxx/xxxxxxxxxxxxx/log4j.properties"/>


你应该可以走了。

你找到解决办法了吗?你找到解决办法了吗?