Два предложения для вас попробовать:
Добавить WebAppRootListener ваш web.xml - это настроит системное свойство, указывающее (по умолчание для webapp.root
, но вы можете настроить с помощью контекстных параметров - см ссылки Javadocs) в корневой каталог вашего веб-приложения, которые затем можно использовать в файле log4j.properties/xml:
<listener>
<listener-class>org.springframework.web.util.WebAppRootListener<listener-class>
<listener>
<!-- log4.appender.File=${webapp.root}/logs/web-app.log -->
Или использовать Log4jConfigListener в вашем web.xml (который в конечном счете делегатов на Log4jConfigurer) - это аналогично приведенному выше, но позволяет определить пользовательский log4j conf МГС файл, а также позволяет для вашего веб-приложения для мониторинга конфигурационный файл log4j для изменений, сделанных во время выполнения и автоматически обновлять ваши регистраторы:
<context-param>
<!-- Configure Log4J from the following config file location -->
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener<listener-class>
<listener>
Я также рекомендовал бы вам прочитать Javadocs для выше в деталях - есть некоторые getchas в отношении развертывания нескольких webapps в Tomcat и совместного использования свойств системы, но все это можно обойти (предоставление настраиваемого ключа для каждого webapp, а не по умолчанию ${webapp.root}
Nice Chris, отлично работайте! Спасибо! :) – Dani