无法关闭 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
我一直在尝试将 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