SpringCloudGateway使用Skywalking时日志打印traceId
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloudGateway使用Skywalking时日志打印traceId相关的知识,希望对你有一定的参考价值。
参考技术A由于SpringCloudGateway是基于WebFlux来实现的,需要进到skywalking的agent目录,将optional-plugins目录底下的以下两个jar包复制到plugins目录
新增启动参数
启动程序后,尝试通过网关进行接口调用,可以在Skywalking-ui上看到链路已经串起来了
但是有个问题,日志里记录的日志始终不显示正确的TID
查看Skywalking-agent的源码,可以看到,在apm-spring-webflux-5.x-plugin-8.10.0.jar插件里,拦截了 org.springframework.web.reactive.DispatcherHandler 的 handle 方法
拦截器里往reactor的调用链路里,放入 < SKYWALKING_CONTEXT_SNAPSHOT - ContextSnapshot >
网上找了下资料,在这里[ https://github.com/reactor/reactor-core/blob/main/docs/asciidoc/faq.adoc#context.api] 发现了相关信息
https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout
以上是关于SpringCloudGateway使用Skywalking时日志打印traceId的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloudGateway 学习笔记 - 使用内置过滤器添加请求头响应头
SpringCloudGateway使用Skywalking时日志打印traceId
微服务-SpringCloud学习系列: 服务网关SpringCloudGateWay