JDK11 は、従来java.net.HttpURLConnection
のクラスに欠けている多くの機能を備えた新しい HTTP クライアントを導入しました。私が遭遇した最初の質問は、新しく追加された HTTP クライアントでログを適切に有効にする方法です。
1730 次
1 に答える
4
クライアントは java.util.logging を使用します。最も簡単な方法は SLF4J を使用することです。詳細については、JUL から SLF4J へのブリッジを参照してください。
3 つのステップが必要です。
ランタイム スコープでjul-to-slf4j ブリッジをクラスパスに追加します。
メイヴン:<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'
logback.xml (logback-test.xml) に追加します。STDOUT アペンダーを追加することを忘れないでください (またはそれに応じて変更します)。
<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
これにより、コンソールへのすべてのログ出力が有効になります。
于 2019-02-17T07:57:06.657 に答える