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

Can't turn off HttpClient Wire debug log messages

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

我已正确初始化 log4j:我没有收到任何附加程序消息,log4j 正在服从我的 class 和控制台级别。

在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

然后我想为什么不在调用后打印所有记录器? 所以我就那样做了。我得到了上面提到的所有内容的漂亮打印输出,以及我当前的 class。遍历 LogManager.getCurrentLoggers()

不会打印任何其他内容

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

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

所以最终对我的项目起作用的是为 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>

现在一切正常。

好吧,我能够使用 deps 让我的 log4j 属性工作:

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

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

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

log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n
log4j.logger.org.apache.http=ERROR
log4j.logger.org.apache.http.wire=ERROR