禁用HttpClient日志记录


133

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

通常,我只需要关闭org.apache.http.wire logger。问题的部分原因是我不知道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]"

导线中所有内容的输出使该库对我不可用...直到我弄清楚如何将其关闭。为了读取此日志配置,我需要做些特殊的事情吗?


对于遇到此问题的所有问题:确保添加-Dlog4j.debug到VM选项中,以确保加载了正确的配置文件
Tommy

3
请参阅stackoverflow.com/questions/1436761/…。摘录: public class Main { static { System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog"); } // Rest of class as before }
PVS


3
是否曾经为OP解决过这个问题。这个确切的问题使我丧命。
柯林·贝尔

2
解决了吗 尝试分配答案,没有运气。
Markvds

Answers:


85

更新内容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.httpclientin 设置Log4 为Log4j log4j.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"));

19
在4.2.1源文件中,日志名称为:“ org.apache.http.headers”和“ org.apache.http.wire”,尽管即使使用它们,嘈杂的apache日志对我来说似乎也不会关闭。
Tinclon 2012年

谢谢!!!另外:如果您在自己的代码中的某个地方存在此问题,则在其中使用httpclient且尚未使用Log4j:还记得在类路径中包括log4j jar ...
FelixD 2014年

30

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

  • 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. 确定要使用的基础日志框架。有许多的选择,但可能log4j还是java.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的开发人员倾向于假定您已经配置了一个日志记录框架,他们可以通过自动发现来确定它是哪个。
如果这对您来说不正确,那么使事情顺利进行往往会需要更多的工作。


1
这是非常有用的信息;我真的觉得应该将其添加到此页面中。您是为此写的吗?
natem345

1
伙计,这个答案很棒,但是我没有使它起作用。我正在使用Dropwizard,但我尝试了您提到的所有方法,但都无济于事:'(
Vic Seedoubleyew


19

这对我的测试有效;

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");

18

对于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>

1
我正在使用log4j。在日志求解器中添加前两行完全是我的问题。我所有其他日志消息均按照我设置的级别显示。而apache日志则没有。很大的帮助。谢谢。
阿伦·桑迪

根据您的情况,它可能会有所不同,但是要禁用AWS SDK开箱即用地启用的非常冗长的日志记录,这是唯一可行的方法。
马特·贝克

11

找出它花费了太长时间,但是JWebUnit与Logback日志记录组件捆绑在一起,因此它甚至不会使用log4j.propertiescommons-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问题


1
你真美。因为这件事,我差点杀了猫。它让我发疯。
Manish Patel

这是我的解决方案。我认为这是因为我包括的其他库中都包含了logback,因此它被锁定在此logger中。
弥敦道

10

在将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);

    //...
}

2
太棒了,这是它对我有用的唯一解决方案。非常感谢。
lasote

谢谢!在测试方法开始时使用的是完全相同的代码,什么也没做。单独放置它@Before@BeforeClass运行它效果很好。
ExactaBox

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>

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(错误)并org.apache.http在log4j.properties中删除设置,则应使其ERROR仅仅通过继承记录消息。

更新:

创建一个commons-logging.properties文件,并添加以下行。还要确保此文件在您的CLASSPATH中。

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

添加了完整的log4j文件和用于调用OP的代码。此log4j.properties应该在您的CLASSPATH中。我暂时假设是stdout。

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
}

在尝试使用HttpClient之前,我不需要log4j.properties文件。我尝试将您的行放在src / test / resources / log4j.properties文件中,但没有任何区别。将commons.logging选项放在log4j.properties中甚至正确吗?
马特·贝克

是的,commons-logging只是log4j的包装。您如何在测试课程中调用记录器?
CoolBeans 2011年

(在您更新之后),我这样做了,因此上面的行是我的log4j.properties文件中的唯一一行,并且仍然吐出了所有内容。
马特·贝克

1
我不调用记录器,HttpClient自行执行。
马特·贝克

它在您提供的链接上说-“注意:Log4j不包含在HttpClient发行版中。” 因此,您绝对需要将其添加到CLASSPATH中。您在stdout(控制台)中还是在日志文件中看到输出?我将用代码创建一个示例log4h文件,以为您调用它。
CoolBeans 2011年

4

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();

我应该将其放在main方法中吗?
parsecer

@parsecer您可以
WiR3D

4

我已经受同一问题困扰了一段时间了,终于决定研究这个问题。事实证明,问题在于我的项目依赖于http-builder-0.5.2.jar,后者将log4j.xml文件捆绑在其内部。确实,org.apache.http.wire的日志级别是DEBUG!我发现它的方式只是遍历我依赖项中的所有jar文件,然后执行“ jar tvf”和grepping log4j。

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


使用时出现类似问题<!-- https://mvnrepository.com/artifact/com.fredericboisguerin.excel/excel-reader-writer --> <dependency> <groupId>com.fredericboisguerin.excel</groupId> <artifactId>excel-reader-writer</artifactId> <version>2.1</version> </dependency>。删除了依赖性,日志消失了。谢谢!
6

3

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

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

可能您不必删除Logback jar,但是您将需要一些其他步骤来强制slf4j使用log4j


谢谢,使用OpenRdf时遇到了同样的问题。直到我删除了logback jar,该线程中的所有其他技巧似乎都没有作用,现在日志非常安静。
amarillion

3

以下两行代码完全解决了我的问题:

Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.ERROR);
Logger.getLogger("httpclient").setLevel(Level.ERROR);

这也对我有用,但是我不需要:Logger.getLogger(“ org.apache.commons.httpclient”)。setLevel(Level.ERROR);
杰梅尔·汤姆斯

3

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


在单元测试中(如果是main,则在main中)还添加@BeforeClass public static void BeforeClass() { PropertyConfigurator.configure("log4j.properties"); ...}log4j.properties文件,并在其中添加一行log4j.logger.org.apache.http = OFF应该位于根目录(在src文件夹上方)
Sasha Bond

3

我也有同样的问题。[main] DEBUG org.apache.http.wire运行测试时,整个控制台已满。

对我有用 的解决方案是在https://github.com/bonigarcia/webdrivermanager-examples/blob/master/src/test/resources中创建一个logback-test.xml src / test / resources / logback-test.xml/logback-test.xml(参考-https : //github.com/bonigarcia/webdrivermanager/issues/203

要查看我的日志记录信息,我用包名替换了logger name =“ io.github.bonigarcia”

<?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>

2

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


2

试穿

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

在commons-logging.properties中



2

它为我工作,在类根路径和以下设置中添加“ logback.xml”。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <logger name="org.apache" level="WARN"/>
    <logger name="httpclient" level="WARN"/>
</configuration>

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>

1

这花了我很长时间才弄清楚,您需要这样做:

log4j.logger.httpclient.wire=ERROR

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

鬼鬼bug


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");

0

我发现最好的解决方案是使用maven强制执行器插件,以防止完全使用commons-logging。然后,我添加了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>

Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M2:enforce (enforce) on project gs-serving-web-content: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed
parsecer

0

在为我的其余模板设置HttpComponentsClientHttpRequestFactory之后,我遇到了此类问题。

设置OkHttpClientHttpRequestFactory应该可以解决垃圾回收的问题。


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);

定义要记录的信息:像这样的 最终结果 。仅显示我要记录的信息。


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的所有级别都会正确记录。


0

带有:

  • Log2J 2 2.11.2
  • HttpClient 4.5.7(elasticsearch 7.0.0 rest客户端)
  • 使用属性文件进行配置

一个可以添加:

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

在上面的示例中,使用“ httpclient”作为您选择的逻辑名称。

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


0

就我而言,我使用xml配置,并将其附加到配置文件中

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

0

尝试'log4j.logger.org.apache.http.headers = ERROR'


0

对我来说,log4j prop文件中的以下行清除了所有来自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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.