无法关闭HttpClient Wire调试日志消息

时间:2018-06-19 20:29:21

标签: java logging log4j apache-httpclient-4.x

我一直试图将Wire设置为不将DEBUG发送到控制台,但是无论我做什么,它都不会监听。

我已经正确初始化了log4j:我没有收到任何附加程序消息,log4j遵循我的类和控制台级别。

在log4j.properties中,我有各种可预见的方式来编写线路:

    log4j.logger.org.httpclient=ERROR
    log4j.logger.org.apache=ERROR
    log4j.logger.org.apache.http=ERROR
    log4j.logger.org.apache.http.wire=ERROR
    log4j.logger.org.apache.http.wire.headers=ERROR
    log4j.logger.httpclient.wire=ERROR
    log4j.logger.httpclient.headers=ERROR
    log4j.logger.httpclient.content=ERROR
    log4j.logger.org.apache.hc.client5.http.wire=ERROR
    log4j.logger.httpclient=ERROR
    wire=ERROR
    http=ERROR

然后我想为什么在调用它后不打印所有记录器? 所以我就是这样做的。我可以很好地打印出上面提到的所有内容以及当前的课程。通过LogManager.getCurrentLoggers()

进行迭代没有其他内容

我认为目前我已经在Google上阅读了所有结果。任何指导将不胜感激。

关于项目:项目是Maven项目-pom.xml包含资源文件夹。为了完成这项工作,我从字面上构造了ControlLogging类,并且首先调用PropertyConfiguratior.configure("log4j.properties")。我将此函数@Before进行测试,并在进行API调用的静态类中进行测试。在任何时候进行打印都不会显示Wire logger。

2 个答案:

答案 0 :(得分:1)

所以最终对我的项目有用的是为sl4j / logback创建配置-我无法使其在log4j等环境下工作。

所以在main/java/resources/logback.xml

<xml version="1.0" encoding="UTF-8" ?>
     <configuration>
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
     <encoder>
          <pattern>%d{HH:mm:ss} %thread %-5level %logger{36} %msg%n</pattern>
     </encoder>
     </appender>

     <logger name="org.apache" level="ERROR"/>
     <logger name="httpclient" level="ERROR"/>

     <root level="DEBUG">
          <appender-ref ref="STDOUT" />
     </root>
</configuration>

在Maven中,我简单地包含了slf4j的依赖项

 <dependency>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-api</artifactId>
 </dependency>
 <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jcl-over-slf4j</artifactId>
 </dependency>

及其全部正常工作。

答案 1 :(得分:0)

好吧,我能够使用deps使log4j属性起作用:

found

并有一个implementation group: 'org.slf4j', name: 'slf4j-log4j12', version: 1.7.25 implementation group: 'org.slf4j', name: 'slf4j-api', version: 1.7.25 implementation group: 'org.slf4j', name: 'jcl-over-slf4j', version: 1.7.25

src/java/(main|test)/resources/log4j.properties