Как отключить 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
Обратите внимание, что вы также можете установить различные приложения для каждого определяемого вами регистратора.