Как отключить регистраторы класса или всего пакета?

Я использую apache.commons.logging, пока я хотел использовать реализацию SimpleLog, но при изменении уровня выходят регистраторы из библиотек. Я хочу, чтобы он отключил его. Есть ли простой способ изменить уровень журнала для всего пакета (может ли log4j сделать это)?
Я попытался установить

org.apache.commons.logging.simplelog.log.foo = фатальным

в файлах свойств simplelog для отключения (установка на фатальный - это нормально) foo logger, но он не работает. (foo - имя регистратора, которое появляется на выходе: [INFO] foo - Message).

Ответ 1

В Log4j вы можете указать уровень ведения журнала для указанного пакета, класса или регистратора, идентифицированного строкой. Просто напишите это в файле log4j.properties:

log4j.logger.<your package> = DEBUG|INFO|OFF|WARN...

Ответ 2

Вы должны использовать:

log4j.logger.foo = OFF

Обратите внимание, что "foo" не обязательно должен быть пакетом или классом, но является произвольной строкой. Мы, например, имеют регистратор с именем "SQL", который вызывается из многих классов.

Ответ 4

Использование SimpleLog из Commons Logging требует наличия двух файлов конфигурации, если вы не используете некоторые системные свойства. Файлы: commons-logging.properties и simplelog.properties. Свойства уровня журнала, которые вы указали, должны быть помещены в simplelog.properties, например:

org.apache.commons.logging.simplelog.log.foo=warn

где "foo" - имя регистратора. Как правило, это имя пакета или пакета и класса. В следующем примере все под пакетом com.stackoverflow.utils установлено в info, тогда как com.stackoverflow.servlet.Dispatcher специально настроен на warn:

org.apache.commons.logging.simplelog.log.com.stackoverflow.utils=info 
org.apache.commons.logging.simplelog.log.com.stackoverflow.servlet.Dispatcher=warn 

Файл commons -logging.properties должен содержать:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog

Документация здесь и здесь.