Как отключить log4j debug-logging для http-api com.spotify.docker-client

Использование log4j 1.2.17 и com.spotify.docker-client 6.1.1 в Java8. Если в DEBUG я установил уровень log4j для корневого журнала, тогда http-api клиента Docker запишет в журнал много сообщений типа

09:42:50,624 DEBUG jersey-client-async-executor-0 headers:onResponseReceived:113 - http-outgoing-13 << HTTP/1.1 200 OK
09:42:50,624 DEBUG jersey-client-async-executor-0 headers:onResponseReceived:116 - http-outgoing-13 << Api-Version: 1.37
09:42:50,624 DEBUG jersey-client-async-executor-0 headers:onResponseReceived:116 - http-outgoing-13 << Docker-Experimental: false
09:42:50,624 DEBUG jersey-client-async-executor-0 headers:onResponseReceived:116 - http-outgoing-13 << Ostype: linux
09:42:50,624 DEBUG jersey-client-async-executor-0 headers:onResponseReceived:116 - http-outgoing-13 << Server: Docker/18.03.1-ce (linux)
09:42:50,624 DEBUG jersey-client-async-executor-0 headers:onResponseReceived:116 - http-outgoing-13 << Date: Thu, 04 Oct 2018 06:42:50 GMT
09:42:50,624 DEBUG jersey-client-async-executor-0 headers:onResponseReceived:116 - http-outgoing-13 << Content-Type: text/plain; charset=utf-8
09:42:50,624 DEBUG jersey-client-async-executor-0 headers:onResponseReceived:116 - http-outgoing-13 << Transfer-Encoding: chunked

Я не понимаю, как это отключить. Все мои попытки:

log4j.rootLogger=DEBUG, stdout
log4j.logger.jersey-client-async-executor-0=INFO
log4j.logger.com.sun.jersey=INFO
log4j.logger.com.spotify=INFO

И это не останавливает это. Как я могу отключить DEBUG-loggin jersey-client-async-executor-0? Благодарю.

2 ответа

Вы устанавливаете уровень журнала на Debug, а затем вы входите в систему регистрации jersey-clientтаким образом, он также устанавливается на уровне отладки.

Либо установите ваш rootlogger на другой уровень, либо не добавляйте jersey-client в логгер.

В log4j все пользовательские регистраторы наследуют от своих родителей, и все регистраторы являются прямыми или косвенными потомками rootLogger.

Чтобы остановить регистратор для наследования от родителя, добавьте это в ваш код:

log4j.additivity.jersey-client-async-executor-0=false

это позволит вам определить, какой уровень журнала вы хотите для этого конкретного компонента, и только тот, который вы определяете. Так что все, что вам нужно, это:

log4j.rootLogger=DEBUG, stdout
log4j.logger.jersey-client-async-executor-0=INFO, stdout
log4j.additivity.jersey-client-async-executor-0=false

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

Другие вопросы по тегам