JDK11引入了一个新的HTTP客户端,其中许多功能缺乏传统的java.net.HttpURLConnection
类。我遇到的第一个问题是如何在新添加的HTTP客户端中正确启用日志记录?
客户端使用java.util.logging,最简单的方法是使用SLF4J。有关更多信息,请参阅JUL to SLF4J Bridge。
需要3个步骤:
<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'
<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>
static {
SLF4JBridgeHandler.removeHandlersForRootLogger();
SLF4JBridgeHandler.install();
}
或者,出于教育目的,可以添加系统属性:
-Djdk.httpclient.HttpClient.log=all
将启用所有日志打印到控制台。