Как отключить регистраторы класса или всего пакета? - PullRequest
43 голосов
/ 11 февраля 2011

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

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

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

Ответы [ 4 ]

89 голосов
/ 11 февраля 2011

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

log4j.logger.<your package> = DEBUG|INFO|OFF|WARN...
16 голосов
/ 11 февраля 2011

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

log4j.logger.foo = OFF

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

3 голосов
/ 20 января 2017

Если вы используете Spring Boot, вы можете установить значение OFF в файле application.properties. Пример:

logging.level.org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer=OFF

Ссылка: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html#boot-features-custom-log-levels

1 голос
/ 11 февраля 2011

Использование 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

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

...