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

Cee*_*lus 2 java logging log4j apache-httpclient-4.x

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

我已正确初始化 log4j:我没有收到任何 appender 消息,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
Run Code Online (Sandbox Code Playgroud)

然后我想为什么不在调用它后打印所有记录器?所以我就是这么做的。我得到了上面提到的所有内容以及我当前课程的精美打印输出。没有其他打印通过迭代LogManager.getCurrentLoggers()

我想此时我已经阅读了 Google 上的所有结果。任何指导将不胜感激。

关于项目: 项目是一个 maven 项目 - pom.xml 包括资源文件夹。为了完成这项工作,我从字面上创建了一个 ControlLogging 类并PropertyConfiguratior.configure("log4j.properties")首先被调用。我调用此函数@Before测试运行,并在进行 API 调用的静态类中。在任何时候进行打印都不会显示线记录器。

Cee*_*lus 5

所以最终对我的项目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>
Run Code Online (Sandbox Code Playgroud)

在 maven 中,我只是包含了 slf4j 的依赖项

 <dependency>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-api</artifactId>
 </dependency>
 <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jcl-over-slf4j</artifactId>
 </dependency>
Run Code Online (Sandbox Code Playgroud)

现在一切正常。