我一直试图将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。
答案 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