Ограничить ведение журнала только одним jar log4j - PullRequest
1 голос
/ 07 октября 2011

У меня есть проект, который в свою очередь используется несколькими другими проектами. Я хочу, чтобы log4j регистрировал только мои журналы в файле, который я указал в файле свойств. Другие проекты используют свои собственные механизмы регистрации, и я не могу их контролировать. Мои файлы log4j не должны влиять на ведение журнала другого проекта. Как мне настроить файл свойств log4j?

Пока что я делаю настройку log4j.rootLogger = ERROR и для моего модуля log4j.logger.com.xyz.myproject = INFO, FILE. Будет ли это работать, не затрагивая регистраторы других проектов? Или возможно ограничить регистрацию только моей банкой?

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 октября 2011

Это зависит от структуры пакета других проектов. Предположим, что

  • регистраторы из других проектов создаются Logger.getLogger(ClassA.class) AND
  • некоторые из них основаны на конфигурации корневого логгера (не имеют специфических log4j.category.loggerName настроек И
  • эти проекты содержат подпакеты пакета, используемого вашим проектом (т. Е. Пакет вашего проекта com.abc.def, а другие проекты имеют пакеты глубже в иерархии com.abc.def.ghi THEN

изменение com.abc.def уровня ведения журнала повлияет на другие проекты - они начнут регистрироваться на уровне, определенном com.abc.def.

Убедитесь, что это не так, и вы должны быть в безопасности.

1 голос
/ 07 октября 2011

Полагаю, ваша банка полностью содержится в вашем собственном пакете (например, com.foo.mypackage).В этом случае достаточно добавить к вашей конфигурации log4j что-то вроде:

# Print only messages of priority WARN or above in the package com.foo
log4j.category.com.foo=WARN
# Print only messages of priority DEBUG or above in the package com.foo.mypackage
log4j.category.com.foo.mypackage=DEBUG

С уважением,

M.

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