Внешний файл log4j.xml для WAR - PullRequest
       11

Внешний файл log4j.xml для WAR

2 голосов
/ 14 сентября 2010

Требование это ...

Один вопрос. Кажется, что обычное место находится в вашем каталоге / WEB-INF / classes, но у меня есть проблемы с этим. что является реальной проблемой.

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

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

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

1 Ответ

1 голос
/ 15 сентября 2010

Я знаю, вы упомянули, что вы не хотите использовать параметр запуска "-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 для каждого файла приложения / войны

...