2015-03-31 3 views
3

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

До сих пор я пробовал то, что предлагается по следующим вопросам, но не повезло. Я также видел много других, которые предлагают почти то же самое.

Передача параметров на выполнение таких как java -Dlog4j не является решением для меня.

В моем проекте заметки на полях имеет два модуля,

  • «исходный модуль» определяет свойство протоколирования и имеет SLF4J (1.7.5) и зависимости SLF4J-log4j12
  • Модуль ребенок где Я использую HttpClient (4.3.4), она имеет только
    SLF4J (1.7.5) DEPENDENCY

ответ

2

Попробуйте добавить эти три строки в файл log4j.properties:

log4j.logger.org.apache.http=WARN 
log4j.logger.org.apache.http.headers=WARN 
log4j.logger.org.apache.http.wire=WARN 
Смежные вопросы