【问题标题】:Add jaeger trace id and span id to log4j2 logs将 jaeger trace id 和 span id 添加到 log4j2 日志
【发布时间】:2018-08-20 11:07:08
【问题描述】:

我想在日志中注入 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,有一些可用的库,例如

勇敢的上下文-log4j2 - (https://github.com/openzipkin/brave/tree/master/context/log4j2)

春云侦探。 (https://cloud.spring.io/spring-cloud-sleuth/) 如何在使用 jaeger 时添加它?

【问题讨论】:

    标签: log4j2 opentracing jaeger


    【解决方案1】:

    继续使用 Jaegar 的最佳方法是不使用 JAEGAR CLIENT! Jaegar 有能力收集 Zipkin 跨度。

    https://www.jaegertracing.io/docs/1.8/getting-started/#migrating-from-zipkin

    您应该利用这一点并使用下面的 Sleuth+Zipkin 依赖项,并在您的 Spring Boot 应用程序中排除 Jaegar 代理 jar。

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-sleuth-zipkin</artifactId>
        </dependency>
    

    默认情况下,上面会将 Zipkin spans 发送到 http://localhost:9411。您可以通过覆盖 zipkin 基本 URL 在 Spring Boot 应用程序中覆盖它以轻松指向 Jaegar 服务器。

    spring.zipkin.base-url=http://your-jaegar-server:9411
    

    Sleuth 将完成所有繁重的工作,默认日志记录将记录 span 和 traceIds。

    log4j2.xml 文件中,您只需要提及

    [%X]
    

    我会将这种方法的工作示例上传到我的 GitHub 并分享链接。

    编辑 1:

    您可以在此处找到示例代码:

    https://github.com/anoophp777/spring-webflux-jaegar-log4j2

    【讨论】:

      猜你喜欢
      • 2021-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      • 2022-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多