登录JDK11 HttpClient

问题描述 投票:1回答:1

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

java http logging java-11 java-http-client
1个回答
3
投票

客户端使用java.util.logging,最简单的方法是使用SLF4J。有关更多信息,请参阅JUL to SLF4J Bridge

需要3个步骤:

  1. 使用运行时范围将jul-to-slf4j brifge添加到类路径中。 Maven的: <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <version>1.7.25</version> <scope>runtime</scope> </dependency> 摇篮: runtime group: 'org.slf4j', name: 'jul-to-slf4j', version: '1.7.25'
  2. 添加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>
  3. 添加您的代码: static { SLF4JBridgeHandler.removeHandlersForRootLogger(); SLF4JBridgeHandler.install(); }

或者,出于教育目的,可以添加系统属性: -Djdk.httpclient.HttpClient.log=all将启用所有日志打印到控制台。

© www.soinside.com 2019 - 2024. All rights reserved.