在 org.apache.httpcomponents 中禁用日志记录

时间:2021-02-23 14:09:55

标签: java httpclient log4j2 slf4j apache-httpclient-4.x

下面是我的 pom.xml

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20201115</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.13</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.4.3</version>
</dependency>

    </dependencies>
  <build>
    <finalName>Demo</finalName>
  </build>

我有一个 Spring Boot 应用程序 JAR,它使用 Rest 模板来访问几个 API,我在独立 Java 应用程序中通过 JAR 使用这些方法。

Client client = new Client();
Map<String, Object> mapObj = new  LinkedHashMap<String, Object>();
//set my mapObj here
client.test(mapObj);

我在控制台中得到以下 org.apache.http 和 org.springframework.web 的调试日志:

19:20:59.954 [main] DEBUG org.springframework.web.client.RestTemplate - HTTP POST 
19:21:00.033 [main] DEBUG org.springframework.web.client.RestTemplate - Accept=[application/json, application/*+json]
19:21:00.040 [main] DEBUG org.springframework.web.client.RestTemplate - Writing [{}] as "application/x-www-form-urlencoded"
19:21:00.057 [main] DEBUG org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: default
19:21:00.069 [main] DEBUG org.apache.http.client.protocol.RequestAuthCache - Auth cache not set in the context
19:21:00.070 [main] DEBUG org.apache.http.impl.conn.PoolingHttpClientConnectionManager - Connection request: [route: {s}->][total available: 0; route allocated: 0 of 2; total allocated: 0 of 20]
19:21:00.082 [main] DEBUG org.apache.http.impl.conn.PoolingHttpClientConnectionManager - Connection leased: [id: 0][route: {s}->][total available: 0; route allocated: 1 of 2; total allocated: 1 of 20]
19:21:00.084 [main] DEBUG org.apache.http.impl.execchain.MainClientExec - Opening connection {s}->
19:21:00.273 [main] DEBUG org.apache.http.impl.conn.DefaultHttpClientConnectionOperator - Connecting to 
19:21:00.273 [main] DEBUG org.apache.http.conn.ssl.SSLConnectionSocketFactory - Connecting socket to with timeout 0
19:21:00.578 [main] DEBUG org.apache.http.conn.ssl.SSLConnectionSocketFactory - Enabled protocols: [TLSv1, TLSv1.1, TLSv1.2]
19:21:00.578 [main] DEBUG org.apache.http.conn.ssl.SSLConnectionSocketFactory - Enabled cipher suites:[TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384]
19:21:00.578 [main] DEBUG org.apache.http.conn.ssl.SSLConnectionSocketFactory - Starting handshake
19:21:01.192 [main] DEBUG org.apache.http.conn.ssl.SSLConnectionSocketFactory - Secure session established
19:21:01.193 [main] DEBUG org.apache.http.conn.ssl.SSLConnectionSocketFactory -  negotiated protocol: TLSv1.2
19:21:01.194 [main] DEBUG org.apache.http.conn.ssl.SSLConnectionSocketFactory -  negotiated cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
19:21:01.196 [main] DEBUG org.apache.http.conn.ssl.SSLConnectionSocketFactory -  peer principal: 
19:21:01.198 [main] DEBUG org.apache.http.conn.ssl.SSLConnectionSocketFactory -  issuer principal: 
19:21:01.202 [main] DEBUG org.apache.http.impl.conn.DefaultHttpClientConnectionOperator - Connection established IPOne<->IPTwo
19:21:01.203 [main] DEBUG org.apache.http.impl.execchain.MainClientExec - Executing request POST  HTTP/1.1
19:21:01.204 [main] DEBUG org.apache.http.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED
19:21:01.206 [main] DEBUG org.apache.http.impl.execchain.MainClientExec - Proxy auth state: UNCHALLENGED
19:21:01.216 [main] DEBUG org.apache.http.headers - http-outgoing-0 >> POST  HTTP/1.1
19:21:01.216 [main] DEBUG org.apache.http.headers - http-outgoing-0 >> Accept: application/json, application/*+json
19:21:01.216 [main] DEBUG org.apache.http.headers - http-outgoing-0 >> Content-Type: application/x-www-form-urlencoded;charset=UTF-8
19:21:01.217 [main] DEBUG org.apache.http.headers - http-outgoing-0 >> Content-Length: 170
19:21:01.217 [main] DEBUG org.apache.http.headers - http-outgoing-0 >> Host: 
19:21:01.217 [main] DEBUG org.apache.http.headers - http-outgoing-0 >> Connection: Keep-Alive
19:21:01.217 [main] DEBUG org.apache.http.headers - http-outgoing-0 >> User-Agent: Apache-HttpClient/4.5.13 (Java/1.8.0_241)
19:21:01.218 [main] DEBUG org.apache.http.headers - http-outgoing-0 >> Accept-Encoding: gzip,deflate

如何禁用它们?

1 个答案:

答案 0 :(得分:1)

您可以尝试两件事。要么把它放到你的 application.yml 中,只记录提到的包的警告和错误

logging:
  level:
    org.apache.http: WARN
    org.springframework.web: WARN 

或使用包集的记录器定义您自己的 resources/logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <property name="CONSOLE_LOG_PATTERN" value="[%date{YYYY-MM-dd HH:mm:ss.SSS}] %-5level [%.15thread] %logger{1} %msg%n"/>

    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>

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

    <root level="${GLOBAL_LOGGING_LEVEL:-INFO}">
        <appender-ref ref="CONSOLE"/>
    </root>

</configuration>