153

commons-httpclient我在集成测试套件中使用3.1。默认日志记录HttpClient非常嘈杂,我似乎无法将其关闭。我已经尝试按照此处的说明进行操作,但它们都没有任何区别。

大多数情况下,我只需要让 org.apache.http.wire 记录器闭嘴。部分问题是我不知道HttpClient正在尝试使用哪种类型的记录器。我以前从未使用过这个库。我尝试创建一个 log4j.properties 文件并将其放在我的 test/resources 文件夹中,修改 jre/lib 中的主 logging.properties 文件,并将各种日志记录选项发送到 Maven,如日志记录页面上指定的那样,但没有一个有所作为。

更新:更正:似乎有问题的输出实际上是通过 jwebunit 使用的HttpClient,而不是我自己的。无论哪种方式,都是不可取的。

更新:感谢您迄今为止的尝试。我已经尝试了下面建议的所有方法,但仍然没有运气。我的 src/test/resources 文件夹中有一个文件 commons-logging.properties,其中包含以下内容

org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jFactory
log4j.configuration=log4j.properties

以及同一文件夹中的文件 log4j.properties,其内容如下

log4j.rootLogger=ERROR, 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

#This is the line that should make httpclient shut up
log4j.logger.org.apache.http=ERROR

但是,当我运行测试时,我仍然会得到一堆这样的输出:

21:57:41.413 [main] DEBUG org.apache.http.wire - << "                                   [\r][\n]"
21:57:41.413 [main] DEBUG org.apache.http.wire - << "[\r][\n]"
21:57:41.413 [main] DEBUG org.apache.http.wire - << "                                   [\r][\n]"
21:57:41.413 [main] DEBUG org.apache.http.wire - << "                               </ul>[\n]"
21:57:41.413 [main] DEBUG org.apache.http.wire - << "    [\n]"
21:57:41.424 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "[\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "[\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "                   </div>[\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "                </li>[\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "            [\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "            [\r][\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "        </ul>[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "<div class="details">[\n]"
21:57:41.442 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "<div class="details-body details-precis  ">[\n]
"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "<div class="details-state">[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\r][\n]"
Destroying 1 processes21:57:41.465 [main] DEBUG org.apache.http.wire - << "[\r][\n]"

电线上所有东西的输出使这个库对我无法使用……直到我弄清楚如何将其关闭。我需要做些什么才能读取此日志配置吗?

4

33 回答 33

95

更新log4j.properties包括:

log4j.logger.httpclient.wire.header=WARN
log4j.logger.httpclient.wire.content=WARN

请注意,如果未安装 Log4j 库,HttpClient(因此 JWebUnit)将使用 logback。在这种情况下,创建或编辑logback.xml以包括:

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

WARN使用包名称将日志级别设置为org.apache.commons.httpclientLog4jlog4j.properties 将无法按预期工作:

log4j.logger.org.apache.commons.httpclient=WARN

这是因为 HttpClient (v3.1) 的源使用以下日志名称:

public static Wire HEADER_WIRE = new Wire(LogFactory.getLog("httpclient.wire.header"));
public static Wire CONTENT_WIRE = new Wire(LogFactory.getLog("httpclient.wire.content"));
于 2011-05-23T15:54:54.930 回答
33

注意:此答案中的某些内容可能会重复您已经知道(或认为您知道)的内容,但是在这个问题上存在一些错误信息,因此我将从头开始并全部说明

  • Commons HttpClient 使用 Commons-Logging 来满足其所有日志记录需求。
  • Commons-Logging 不是一个完整的日志框架,而是几个现有日志框架的包装器
  • 这意味着当您想要控制日志输出时,您(大部分)最终会配置除 Commons-Logging 之外的库,由于 Commons-Logging 包含其他几个库,我们很难在不知道的情况下猜测要配置哪个库你的确切设置。
  • Commons-Logging 可以登录到 log4j,但也可以登录到java.util.logging(JDK1.4 的日志)
  • Commons-Logging 尝试变得聪明并猜测您已经在使用哪个日志框架,并将其日志发送到该框架。
  • 如果您还没有日志记录框架,并且在 1.4 或更高版本的 JRE 上运行(您确实应该这样做),那么它可能会将其日志消息发送到 JDK 日志记录(java.util.logging
  • 依赖 Commons-Logging 的自动发现机制容易出错。简单地添加log4j.jar到类路径会导致它切换它使用的日志记录机制,这可能不是你想要的
  • 最好明确告诉 Commons-Logging 使用哪个日志库
  • commons-logging.properties您可以通过按照这些说明创建文件来执行此操作
  • 您要配置 commons-httpclient 日志记录的步骤是
    1. 确定要使用的底层日志框架。有很多选择,但可能log4jjava.util.logging最适合您的选择。
    2. 设置 commons-logging 属性文件以指向正确的Log实现。例如,要使用 log4j,请将其放入属性文件:org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger,或使用 JDK 日志记录集org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger。这些也可以设置为系统属性(例如-D在命令行上使用)。
    3. 配置底层日志实现(例如 log4j)以忽略您不想要的消息,并输出您想要的消息。

这是很多步骤,但这就是它所需要的。Apache-commons 的开发人员倾向于假设您已经配置了一个日志框架,并且他们可以通过自动发现来确定它是哪一个。
如果这对你来说不是真的,那么让事情运行起来往往需要更多的工作。

于 2011-02-06T23:54:13.547 回答
22

对于 log4j,将以下内容添加到log4j.properties(在应用程序的source目录中):

log4j.logger.org.apache=WARN
log4j.logger.httpclient=WARN

对于 logback,以下logback.xml将消除噪音:

<configuration>
    <logger name="org.apache" level="WARN" />
    <logger name="httpclient" level="WARN" /> 
</configuration>
于 2014-02-20T22:53:45.900 回答
20

我把它放到我的 log4j 配置文件中

log4j.logger.org.apache.http.wire=WARN

这会将输出限制在警告级别或以上

于 2011-04-26T18:43:44.420 回答
20

这对我的测试有用;

java.util.logging.Logger.getLogger("org.apache.http.wire").setLevel(java.util.logging.Level.FINEST);
java.util.logging.Logger.getLogger("org.apache.http.headers").setLevel(java.util.logging.Level.FINEST);
System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true");
System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire", "ERROR");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http", "ERROR");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.headers", "ERROR");
于 2011-03-25T12:09:40.110 回答
16

我在将 RestAssured 与 JUnit 一起使用时遇到了这个问题。对我来说,这种程序化方法很有效:

@BeforeClass
public static void setUpClass() {
    ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) org.slf4j.LoggerFactory.getLogger("org.apache.http");
    root.setLevel(ch.qos.logback.classic.Level.INFO);

    //...
}
于 2019-03-04T15:49:44.110 回答
12

发现这一点花了很长时间,但 JWebUnit 与Logback日志记录组件捆绑在一起,因此它甚至不会使用log4j.propertiesor commons-logging.properties

相反,创建一个名为的文件logback.xml并将其放在您的源代码文件夹中(在我的情况下,src):

<configuration debug="false">
  <!-- definition of appender STDOUT -->
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
    </encoder>
  </appender>

  <root level="ERROR">
    <!-- appender referenced after it is defined -->
    <appender-ref ref="STDOUT"/>
  </root> 
</configuration>

Logback 看起来仍在开发中,API 似乎仍在更改,因此此代码示例将来可能会失败。另请参阅此 StackOverflow 问题

于 2012-01-20T04:00:58.430 回答
8

我们使用 XML 而不是属性文件来配置我们的日志输出。以下代码可以消除这种喋喋不休。

<logger name="org.apache.commons.httpclient">
    <level value="fatal"/>
</logger>

<logger name="httpclient.wire.header">
    <level value="fatal"/>
</logger>

<logger name="httpclient.wire.content">
    <level value="fatal"/>
</logger>
于 2011-10-03T20:32:25.707 回答
6

简单的方法 Log4j 和 HttpCLient(在这种情况下是 v3.1,应该可以工作得更高,可能需要小的改动)

确保所有依赖项都是正确的,并且 MD5 您的下载!!!!

import org.apache.commons.httpclient.HttpClient;  
import org.apache.log4j.Level;  
import org.apache.log4j.Logger;  

---

Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.WARN);
Logger.getLogger("httpclient.wire.header").setLevel(Level.WARN);
Logger.getLogger("httpclient.wire.content").setLevel(Level.WARN);

HttpClient client = new HttpClient();
于 2012-05-17T13:10:59.653 回答
5

我已经被同样的问题困扰了很长一段时间了,最​​后决定调查一下。事实证明,问题在于我的项目依赖于 http-builder-0.5.2.jar,它在自身内部捆绑了一个 log4j.xml 文件。果然,org.apache.http.wire 的日志级别是 DEBUG!我发现它的方式只是浏览我的依赖项中的所有 jar 文件并执行“jar tvf”并为 log4j 进行 grepping。

虽然这一发现导致最终解决方案将我的 http-builder 依赖项的版本提高到 0.6,但在将 log4j.xml 文件捆绑到 jar 文件时,开发人员的想法仍然让我感到困惑。无论如何,这可能与这个线程现在无关。但我认为提及我发现的这个解决方案很有用,因为当我之前在寻找解决方案时,我的从来没有出现过。希望有人会发现这很有用。

于 2014-11-05T18:53:46.460 回答
4

The following 2 lines solved my problem completely:

Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.ERROR);
Logger.getLogger("httpclient").setLevel(Level.ERROR);
于 2013-04-03T21:26:02.593 回答
4

在您的 log4.properties 中-您是否像我在下面那样org.apache.http设置了此设置,并且文件中没有设置其他记录器?

-org.apache.commons.logging.simplelog.log.org.apache.http=ERROR

此外,如果您没有org.apache.http在 log4j 属性文件中指定任何日志级别,那么它将继承该 log4j.rootLogger级别。因此,如果您log4j.rootLogger设置为 ERROR 并在您的 log4j.properties 中取出org.apache.http设置,这应该使其ERROR仅通过继承记录消息。

更新:

创建一个commons-logging.properties文件并向其中添加以下行。还要确保这个文件在你的 CLASSPATH 中。

org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jFactory

添加了一个完整的 log4j 文件和为 OP 调用它的代码。这个 log4j.properties 应该在您的 CLASSPATH 中。我暂时假设标准输出。

log4j.configuration=log4j.properties 
log4j.rootLogger=ERROR, 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

这是您需要添加到类中以调用记录器的一些代码。

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; 

public class MyClazz
{
    private Log log = LogFactory.getLog(MyClazz.class);
    //your code for the class
}
于 2011-02-06T19:14:17.270 回答
4

I was also having the same problem. The entire console was filled with [main] DEBUG org.apache.http.wire while running the tests.

The solution which worked for me was creating a logback-test.xml src/test/resources/logback-test.xml as in https://github.com/bonigarcia/webdrivermanager-examples/blob/master/src/test/resources/logback-test.xml (ref - https://github.com/bonigarcia/webdrivermanager/issues/203)

To view my logging infos, I replaced logger name="io.github.bonigarcia" with my package name

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

    <logger name="com.mypackage" level="DEBUG" />
    <logger name="org" level="INFO" />
    <logger name="com" level="INFO" />

    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>
于 2019-06-05T14:22:45.853 回答
4

在类根路径和下面的设置中添加“logback.xml”对我有用。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <logger name="org.apache" level="WARN"/>
    <logger name="httpclient" level="WARN"/>
</configuration>
于 2020-01-11T15:30:08.590 回答
3

我对 JWebUnit 也有同样的问题。请注意,如果您使用二进制分发,那么 Logback 是默认记录器。要将 log4j 与 JWebUnit 一起使用,我执行了以下步骤:

  • 删除了 Logback jars
  • 为 sfl4j 添加 lod4j 桥接库 - slf4j-log4j12-1.6.4.jar
  • 添加 log4j.properties

可能您不必删除 Logback jar,但您需要一些额外的步骤来强制 slf4j 使用 log4j

于 2011-12-27T15:50:29.277 回答
3

在 log4j 属性文件中添加以下行,它将关闭 http 日志:- log4j.logger.org.apache.http=OFF

于 2016-10-01T22:22:57.543 回答
3

对我来说,log4j.properties文件中的以下几行清除了来自 HttpClient 日志记录的所有混乱......万岁!!!:)

log4j.logger.org.apache.http.headers=ERROR
log4j.logger.org.apache.http.wire=ERROR
log4j.logger.org.apache.http.impl.conn.PoolingHttpClientConnectionManager=ERROR
log4j.logger.org.apache.http.impl.conn.DefaultManagedHttpClientConnection=ERROR
log4j.logger.org.apache.http.conn.ssl.SSLConnectionSocketFactory=ERROR
log4j.logger.org.springframework.web.client.RestTemplate=ERROR
log4j.logger.org.apache.http.client.protocol.RequestAddCookies=ERROR
log4j.logger.org.apache.http.client.protocol.RequestAuthCache=ERROR
log4j.logger.org.apache.http.impl.execchain.MainClientExec=ERROR
log4j.logger.org.apache.http.impl.conn.DefaultHttpClientConnectionOperator=ERROR
于 2019-11-22T01:25:45.927 回答
2

在寻找类似问题的解决方案时,我被带到了这篇文章。蒂姆的回答很有帮助。像 Matt Baker 一样,我只想在没有太多配置的情况下关闭 httpClient 日志。由于我们不确定使用了 common-logging 下的哪个日志实现,我的解决方案是通过在类路径中抛出 log4j jar 文件来强制使用 log4j。log4j 配置的默认设置关闭 common-httpclient 调试输出。当然,为了让它更健壮,你可以创建 common-logging.properties 和 log4j.properties 文件来进一步定义你的日志配置。

于 2011-04-26T22:24:07.343 回答
2

试试放

org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog

在你的 commons-logging.properties

于 2013-02-02T15:29:26.630 回答
2

对于 apache 4.5.3,如果要将所有 apache http 客户端日志记录的级别移动到Warn,请使用:

log4j.logger.org.apache=WARN
于 2018-03-15T13:54:49.043 回答
1

这花了我很长时间才弄清楚,你需要这个:

log4j.logger.httpclient.wire=ERROR

我猜 HttpClient 使用“httpclient.wire”作为它的记录器名称,而不是“org.apache.commons.httpclient”。

鬼鬼祟祟的家伙。

于 2012-05-01T15:04:57.083 回答
1

运行 jwebunit 集成测试时我遇到了同样的问题。我通过排除 logback 并添加 slf4j-log4j12 来修复它,如下所示:

<dependency>
  <groupId>net.sourceforge.jwebunit</groupId>
  <artifactId>jwebunit-htmlunit-plugin</artifactId>
  <version>3.0</version>
  <exclusions>
    <exclusion>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
</dependency>
于 2011-10-26T18:46:27.587 回答
1

已经有很多答案了。无论如何,我想写出对我有用的东西,这样它可以帮助任何人尝试。

我在 src/test/resources 中创建了一个logback-test.xml,其中包含以下内容:

<configuration>
    <include resource="/org/springframework/boot/logging/logback/base.xml"/>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            </pattern>
        </encoder>
    </appender>
    <root level="info">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

在此之后开始构建,Junit runner 拾取了上面提到的日志级别“信息”并且没有 org.apache.http 日志。

于 2021-01-27T12:38:02.870 回答
1

这对我有用。

System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true");
System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire.header", "error");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http", "error");
System.setProperty("log4j.logger.org.apache.http", "error");
System.setProperty("log4j.logger.org.apache.http.wire", "error");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "error");
于 2020-04-09T18:52:43.493 回答
0

和:

  • 日志2J 2 2.11.2
  • HttpClient 4.5.7(elasticsearch 7.0.0 休息客户端)
  • 使用属性文件进行配置

可以添加:

logger.httpclient.name=org.apache.http
logger.httpclient.level=info

上面示例中的“httpclient”是您选择的逻辑名称。

(在 Java 11 OpenFX 应用程序上测试。)

于 2019-05-31T16:08:23.890 回答
0

尝试“log4j.logger.org.apache.http.headers=ERROR”

于 2019-08-13T18:22:51.753 回答
0

对我来说,这是非常简单的解决方案:

我必须在我的 POM.xml 中添加 log4j 依赖项,这解决了不必要的日志记录。

	  <dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>2.6.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.6.1</version>
		</dependency>

于 2019-12-02T03:17:22.767 回答
0

我发现最好的解决方案是使用 maven 强制插件,以防止完全使用公共日志记录。然后我添加了用于日志记录的 slf4j 依赖项。因此,将以下内容添加到您的 pom.xml

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>[your version here]</version>
    </dependency>

并添加 maven-enforcer 插件

<plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-enforcer-plugin</artifactId>
           <version>[your version here]</version>
           <executions>
               <execution>
                   <id>enforce</id>
                   <configuration>
                       <rules>
                           <DependencyConvergence />
                           <bannedDependencies>
                               <excludes>
                                   <exclude>commons-logging:commons-logging</exclude>
                               </excludes>
                           </bannedDependencies>
                       </rules>
                   </configuration>
                   <goals>
                       <goal>enforce</goal>
                   </goals>
               </execution>
           </executions>
       </plugin>
于 2016-05-27T22:44:50.057 回答
0

只需在pom文件中添加这两个依赖即可: 我尝试过之前讨论过,成功了。

<!--Using logback-->
<dependency>
   <groupId>commons-logging</groupId>
   <artifactId>commons-logging</artifactId>
   <version>1.2</version>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-logging</artifactId>
</dependency>

Commons-Logging -> Logback 和默认信息,而 Debug 将不存在;您可以使用:

private static Logger log = LoggerFactory.getLogger(HuaweiAPI.class);

定义您要记录的信息:像这样的 最终结果 。只有我想记录的信息才会出现。

于 2018-03-08T12:33:54.947 回答
0

在为我的休息模板设置 HttpComponentsClientHttpRequestFactory 后,我遇到了这样的问题。

设置 OkHttpClientHttpRequestFactory 应该可以解决垃圾记录问题。

于 2017-06-23T10:23:27.843 回答
0

在我的情况下,我使用 xml 配置,并将其附加到配置文件中

<logger name="org.apache.http">
    <level value="warn"/>
</logger>
于 2019-07-11T07:01:10.987 回答
0

我尝试了上述所有解决方案均无济于事。对我来说最接近的一种解决方案是建议创建一个 logback.xml。那行得通,但是没有任何记录。在玩弄了 logback.xml 之后,这就是我最终得到的

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <withJansi>true</withJansi>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    </encoder>
  </appender>
  <root level="INFO">
    <appender-ref ref="STDOUT"/>
  </root>
</configuration>

现在 DEBUG 以下的所有级别都被正确记录。

于 2019-03-04T23:18:49.827 回答
0

由于即使在搜索log4j2解决方案时 Google 也会在此处领先,因此您可以使用以下内容。将以下XML代码添加到您log4j2.xmlLoggers标签中:

<logger name="org.apache.http" level="WARN"/>

org.apache.httpcomponents:httpclient:4.5.13和工作org.apache.logging.log4j:log4-core:2.14.1

于 2021-08-15T08:33:35.563 回答