始终记录一个 ID

Always logging an ID

在我的调试日志中,我看到每个请求都有这个理想的 ID“0x277ec1de”或类似 ID,因此以一种非常方便的方式对请求进行编号:

  2018-12-11 09:58:55.490 DEBUG 11868 --- [ctor-http-nio-4] io.netty.handler.ssl.SslHandler          : [id: 0x277ec1de, L:/0:0:0:0:0:0:0:1:8443 - R:/0:0:0:0:0:0:0:1:51951] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  2018-12-11 09:58:55.492 DEBUG 11868 --- [ctor-http-nio-4] o.s.w.s.adapter.HttpWebHandlerAdapter    : [277ec1de] HTTP GET "/v1/voice/selectCaching?q=*:*&rows=100"

如果我可以在我自己的代码中重新使用这个 ID,那么我就可以提取错误消息之前发生的所有事情,并且只提取错误消息,而忽略发生在平行。 有没有人知道如何做到这一点? 我正在使用 Spring-Boot 2.1.1,并将 netty 作为嵌入式网络服务器。

您可以从与 ServerWebExchange#getLogPrefix() 交换的服务器中获取该日志前缀信息。同样的事情适用于 ClientRequest#logPrefix().

的客户端

参见Spring WebFlux reference documentation on log ids