2010-09-14 2 views
2

Требование это ...Внешний файл log4j.xml для WAR

Один вопрос, Обычное место, кажется, в вашем WEB-INF директории/классов /, но у меня есть проблемы с that.if я гружу мой приложение как WAR-файл, я не могу получить его, чтобы отредактировать его, что является реальной проблемой.

У нас есть 3 WAR, мы развернули приложения с tomcat 6.0.16. Мы хотим настроить log4j.xml во внешнем каталоге для каждой войны и загружаться оттуда динамически.

Я действительно не хочу использовать «-Dlog4j.configuration =/Directory/log4j.xml» эту настройку env как решение. Потому что он станет дефолтом, а не WAR.

Любые предложения? Любая помощь оценивается ...

ответ

1

Я знаю, что вы упоминаете, что не хотите использовать параметр запуска «-Dlog4j.configuration =/Directory/log4j.xml», но рассмотрели ли вы с помощью настраиваемого параметра, например

-DappOneLog4jConfig=/directoy/file1.xml 
-DappTwoLog4jconfig=/directory/file2.xml 

И затем в каждом из ваших военных файлов вы можете загрузить файл log4j, который вы хотите. Вы можете сделать что-то подобное в классе, который загружается при запуске.

if(System.getProperty("appOneLog4jConfig") != null){ 
     PropertyConfigurator.configure(System.getProperty("appOneLog4jConfig")); 
} else { 
     BasicConfigurator.configure(); 
     Logger.getRootLogger().setLevel(Level.INFO); 
} 

, который говорит, что если у меня есть файл свойств, используйте его. в противном случае по умолчанию все в Info. Это должно предоставить вам свободу для установки файла log4j для каждого файла приложения/войны.

+0

yeah.I знаю, что он отлично работает, но что является распространенной лучшей практикой для конфигурации log4j для нескольких webapps. Я действительно хочу, чтобы у меня был файл log4j.xml, специфичный для webapp, который был загружен в мои войны (без приложения), а обычный log4j.xml размещен на уровне @ tomcat с помощью приложения, при появлении журнала webapp1 он должен быть зарегистрирован с помощью app1.log и для во-вторых, он должен быть зарегистрирован с помощью app2.log. У меня есть context.xml для каждого webapp, есть способ, которым я могу установить параметр для конкретного значения приложения и получить значение в верхнем уровне log4j.xml, как это "" ????? – bubesh

Смежные вопросы