在JDK11 httpclient中记录



JDK11引入了一个新的HTTP客户端,其中传统java.net.HttpURLConnection类中缺少许多功能。我遇到的第一个问题是如何正确启用新添加的http客户端的记录?

客户端使用java.util.logging,最简单的方法是使用slf4j。有关更多信息,请参见7月至SLF4J桥。

需要3个步骤:

  1. 使用运行时范围添加Jul-to-Slf4j桥向您的类路径。
    Maven:

    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>jul-to-slf4j</artifactId>
       <version>1.7.25</version>
       <scope>runtime</scope>
    </dependency>
    

gradle

`runtime group: 'org.slf4j', name: 'jul-to-slf4j', version: '1.7.25'`
  1. 添加logback.xml(logback-test.xml),别忘了添加stdout appender(或相应地更改)

    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>
    <logger name="jdk.internal.httpclient.debug" level="debug" additivity="false">
        <appender-ref ref="STDOUT" />
    </logger>
    <root level="DEBUG">
        <appender-ref ref="STDOUT"/>
    </root>
    
  2. 添加您的代码:

     static {
     SLF4JBridgeHandler.removeHandlersForRootLogger();
     SLF4JBridgeHandler.install();
     }
    

另外,出于教育目的,可以添加系统属性:
-Djdk.httpclient.HttpClient.log=all这将使所有记录打印到控制台。

相关内容

  • 没有找到相关文章

最新更新