Файл свойств log4j: как настроить? - PullRequest
5 голосов
/ 26 марта 2010

Моя процедура использования log4j такая:

  1. положить файл .properties в папку проекта
  2. в методе инициализации, который запускается только один раз, вызвать PropertyConfigurator.configure ("path_to_file")
  3. в каждом методе, который нам нужен, используя logger, мы определяем статическую переменную logger и просто вызываем getLogger (class)

Это правильно? Что произойдет, если модуль инициализации не определен? Где я могу поместить файл "log4j.properties" так, чтобы мне вообще не приходилось вызывать propertyconfigurator.configure? Если это невозможно, нормально ли вызывать PropertyConfigurator.configure ("path_to_file") в каждом методе, который использует регистратор?

Ответы [ 2 ]

10 голосов
/ 26 марта 2010

Если вы поместите его где-нибудь в classpath, Log4J автоматически загрузит его. Типичным местом для этого является корневой каталог источника (или ресурса). Таким образом, он также может быть скопирован в корневой каталог вашего jar-файла (если вы создаете его из файлов вашего класса).

Точные детали для этого зависят от того, какую систему сборки вы используете. Например. в Maven это условное обозначение: src/main/resources.

3 голосов
/ 26 марта 2010

Процедура инициализации по умолчанию для log4j описана в этом разделе руководства log4j. Это подробно объясняет шаги, которые log4j предпринимает для поиска конфигурации регистрации.

Самый простой способ настроить log4j - это поместить куда-нибудь файл свойств, который позволит его найти загрузчик классов с именем "/log4j.properties". Есть и другие подходы, которые вы также можете использовать, которые включают установку системных свойств, программную загрузку файла свойств или даже создание экземпляров Loggers, Appenders и т. Д. Через API log4j. (Не то, чтобы последнее было хорошей идеей ...)

(Поместить файл свойств log4j в «src / main / resources» в проекте Maven - это только один из нескольких возможных способов получить файл в корне пути к классу вашего приложения.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...