Вход в JDK11 HttpClient - PullRequest
       56

Вход в JDK11 HttpClient

0 голосов
/ 17 февраля 2019

JDK11 представил новый HTTP-клиент со многими функциями, которых нет в традиционном классе java.net.HttpURLConnection.Первый вопрос, с которым я столкнулся, заключается в том, как правильно включить ведение журнала во вновь добавленном HTTP-клиенте?

1 Ответ

0 голосов
/ 17 февраля 2019

Клиент использует java.util.logging, самый простой способ - использовать SLF4J.Для получения дополнительной информации см. Мост JUL - SLF4J .

Требуется 3 шага:

  1. Добавить мост jul-to-slf4j вам classpath с областью выполнения.
    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'

  2. Добавьте файл 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>
    
  3. Добавьте в свой код:

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

В качестве альтернативы, для образовательных целей можно добавить системное свойство:
-Djdk.httpclient.HttpClient.log=all, которое разрешит всю печать журналов на консоль.

...