2016-05-20 6 views
1

В настоящее время у меня есть ситуация, когда мне нужно 1) есть внешние log4j.properties 2) местоположение log4j.properties настраивается в web.xml как заполнитель свойств , значение свойства считывается из POM. 3) Заполнитель заполняется во время сборки, то есть когда создается .warMaven фильтрация web.xml для Tomcat, встроенного в Eclipse

До сих пор так хорошо - приложение обнаруживает log4j в местоположении, указанном в POM, и создает файлы журналов. Однако это работает только тогда, когда приложение было развернуто как .war для отдельного экземпляра Tomcat. Следующим требованием является возможность его развертывания в Tomcat, встроенном в Eclipse, шаг, который не касается Maven, насколько я могу судить. Есть ли способ заставить web.xml иметь заполняемые им заполнители свойств при развертывании во встроенный экземпляр Tomcat?

Заранее спасибо

Angus

+0

Вы нашли решение для этого? – watery

ответ

0

да, я придумал решение, в конце концов. Включите ниже конфигурации:

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> 

context.xml:

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

И вы должны быть хорошо идти.