slf4j - 始终记录 ID
问题描述
在我的调试日志中,我看到每个请求都有这个理想的 id "0x277ec1de" 或类似的,因此以非常方便的方式对请求进行编号:
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()
。
推荐阅读
- python - 即使将中位数用作枢轴,快速排序也比合并排序慢 20 倍?
- sql - 检查表内的条件是否可能自联接?
- algorithm - 计算模 2^32 - 1 不除法运算
- java - 服务器端超时
- docker - Docker Hub 映像存储库是否包含来自 .env 文件的环境变量?
- blazor - 如何将自定义授权属性添加到 AuthorizeView?
- reactjs - 如何仅在第二次渲染时更新列表?
- windows - 在 Build 中 Flutter Windows App 参考文件,从项目目录中加载文件
- laravel - 在 Lravel Vapor 上优化图像文件
- javascript - Html2canvas 在移动网站上呈现裁剪图像