Spring Webflux Webclient:窃听日志记录问题

Pat*_*Pat 7 java spring-webflux

关于 Java Spring Webflux WebClient 和窃听日志记录的快速问题。

我目前正在使用 Java 和 SpringBoot Webflux WebClient 2.5.0 发出出站 http 请求(我是源),我需要发出 http 请求(到目标)。

我像这样制作出站 http 客户端:

webClientUtil.getWebClient().mutate().baseUrl(someUrl).build().post().body(BodyInserters.fromValue(someRequest)).exchangeToMono(clientResponse -> clientResponse.bodyToMono(SomeResponse.class));
Run Code Online (Sandbox Code Playgroud)

我想记录请求和响应,因此,我编写以下代码:

final HttpClient httpClient = HttpClient.create().wiretap("reactor.netty.http.client.HttpClient", LogLevel.INFO, AdvancedByteBufFormat.HEX_DUMP)
Run Code Online (Sandbox Code Playgroud)

在 Util 类中:

public WebClient getWebClient() {
        final HttpClient httpClient = HttpClient.create().wiretap("reactor.netty.http.client.HttpClient", LogLevel.INFO, AdvancedByteBufFormat.HEX_DUMP).metrics(true, Function.identity()).proxy(proxy -> proxy.type(ProxyProvider.Proxy.HTTP).host(proxyUrl));
        return WebClient.create().mutate().defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE, HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).clientConnector(new ReactorClientHttpConnector(httpClient)).build();
    }
Run Code Online (Sandbox Code Playgroud)

(WebClient植入已经测试并正常工作)

我将日志记录级别设置为 INFOlogging.level.root=INFO

请注意日志级别是信息,窃听也是信息。

不幸的是,我没有看到任何额外的日志。

请问我做错了什么?

谢谢你!

Vin*_*t F 0

任何 logback.xml 文件会覆盖配置吗?

我在一些测试中遇到了类似的问题,并通过在我的中解决它logback-test.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <include resource="org/springframework/boot/logging/logback/base.xml" />

  <logger name="reactor.netty" level="debug"/>

</configuration> 
Run Code Online (Sandbox Code Playgroud)