我想在日志中注入x-b3-traceid和x-b3-spanid,模式如图所示-
property name="PATTERN" value="%h %l %u [%date{dd/MMM/yyyy:HH:mm:ss.SSS}] "%r" %s %b "%i{Referer}" "%i{User-Agent}" [trace=%responseHeader{X-B3-TraceId},span=%i{X-B3-SpanId}] %D"
对于zipkins,有可用的库,例如
勇敢的上下文日志4j2 – (https://github.com/openzipkin/brave/tree/master/context/log4j2(
春云侦探。(https://cloud.spring.io/spring-cloud-sleuth/( 如何在使用积家时添加它?
为了使用Jaegar,最好的方法是不要使用JAEGAR客户端!Jaegar有能力收集Zipkin跨度。
https://www.jaegertracing.io/docs/1.8/getting-started/#migrating-from-zipkin
您应该利用这一点并使用以下 Sleuth+Zipkin 依赖项,并在您的 Spring 启动应用程序中排除 Jaegar 代理 jar。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
默认情况下,上述会将 Zipkin 跨度发送到 http://localhost:9411。您可以在 Spring Boot 应用程序中覆盖它,通过覆盖 zipkin 基本 URL 轻松指向您的 Jaegar 服务器。
spring.zipkin.base-url=http://your-jaegar-server:9411
侦探将完成所有繁重的工作,默认日志记录将记录跨度和跟踪ID。
在log4j2.xml
文件中,您只需要提及的是
[%X]
我将把这种方法的一个工作示例上传到我的GitHub并分享链接。
编辑 1:
您可以在此处找到示例代码:
https://github.com/anoophp777/spring-webflux-jaegar-log4j2