Я разрабатываю веб-приложение, которое среди других использует apache HttpClient для создания некоторого httpRequest.
Для протоколирования я использую SLF4J с SLF4J-log4j12 штепсельным в "Установить уровень журнала Apache HttpClient явно
То, что я хочу, чтобы иметь уровень журнала DEBUG для моего приложения, но WARN уровня для HttpClient. Я изучаю свойства каротажа в log4j.properties
.
log4j.rootLogger=DEBUG,console,file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log.log
log4j.appender.file.threshold=DEBUG
инициализации и регистрация не нравится, что
import org.slf4j.LoggerFactory;
private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(<MY_CLASS>.class.getName());
LOG.debug("This is debug info");
LOG.warn("This is warn info");
До сих пор я устанавливаю следующий к классу, который использует HttpClient
System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
Для того, чтобы «отключить» ведение журнала, но это полностью останавливает ведение журнала и не устанавливает уровень WARN, как я хочу.
До сих пор я пробовал то, что предлагается по следующим вопросам, но не повезло. Я также видел много других, которые предлагают почти то же самое.
- Disable HttpClient logging
- Logs are filling up with httpclient.wire.content dumps. How can I turn it off?
Передача параметров на выполнение таких как java -Dlog4j
не является решением для меня.
В моем проекте заметки на полях имеет два модуля,
- «исходный модуль» определяет свойство протоколирования и имеет SLF4J (1.7.5) и зависимости SLF4J-log4j12
- Модуль ребенок где Я использую HttpClient (4.3.4), она имеет только
SLF4J (1.7.5) DEPENDENCY