当前位置: 首页 > 知识库问答 >
问题:

StackDrive日志记录|缺少TraceId和SPANId

双子民
2023-03-14

我正在尝试通过使用spring-cloud d-gcp-starter-log将SpringBootApplication(微服务)与StackdriverLogging集成。我能够在GCP中看到日志,但在日志中traceId和SPANId丢失。为此,我也尝试使用Spring-cloud d-sleuth,但由于我在我的微服务中使用apache kafka,因此侦探无法正常工作。有人能帮我吗我如何在日志中添加traceId和SPANId信息??

POM。xml配置:

    <spring-cloud.version>Hoxton.SR1</spring-cloud.version>
    <dependencyManagement>
          <dependencies>
             <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
             </dependency>
          </dependencies>
    </dependencyManagement>

    <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-gcp-starter-logging</artifactId>
    </dependency>

logback.xml:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
     <include resource="org/springframework/cloud/gcp/autoconfigure/logging/logback-json-appender.xml" />
    <appender name="CONSOLE_JSON"  class="ch.qos.logback.core.ConsoleAppender">
       <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.springframework.cloud.gcp.logging.StackdriverJsonLayout">
                <includeTraceId>true</includeTraceId>
                <includeSpanId>true</includeSpanId>
                <includeThreadName>false</includeThreadName>
            </layout>
       </encoder>
    </appender> 
    <logger name="org.apache.kafka" level="warn">
        <appender-ref ref="CONSOLE_JSON" />
    </logger>
    <root level="INFO">
        <appender-ref ref="CONSOLE_JSON" />
    </root> 

</configuration>

共有1个答案

廖弘伟
2023-03-14

默认情况下,Sleuth不会为每个请求发送跟踪数据。您可能也不想跟踪每个请求。可以通过配置spring.sleuth.sampler来调整跟踪采样率。百分比属性。有关更多详细信息,请参阅此链接中的“Spring Boot和Spring Cloud Sleuth”,并查看此视频。

 类似资料:
  • 例如,在包括Spring Cloud Sleuth之前,人们会在他们的日志中得到这样的东西 在应用程序名称附近有2个逗号(即traceID和spanID将显示的位置)。但我的日志最初看起来像这样 为了在日志中获取应用程序名称,我在application.properties中编写了以下代码 现在,我的日志看起来是这样的(如果您观察到,它在应用程序名称旁边没有2个逗号) 即使包括了Sleuth,我的

  • 我想在我的应用程序中使用SLF4J+logback用于两个目的--日志和审计。 14:41:57.978[main]信息AUDIT_LOGGER-110欢迎使用main 如何确保审核消息在审核记录器下只出现一次?

  • SLF4J 提供了 MDC (Mapped Diagnostic Contexts)功能,可以支持用户定义和修改日志的输出格式以及内容。本文将介绍 SOFATracer 集成的 SLF4J MDC功能,方便用户在只简单修改日志配置文件的前提下输出当前 SOFATracer 上下文 TraceId 以及 SpanId 。 使用前提 为了在应用中的日志正确打印 TraceId 和 SpanId 参数,

  • 问题内容: 我正在考虑将Redis用于Web应用程序日志记录目的。我用谷歌搜索,有人将日志转储到Redis队列/列表中,然后将计划的工作人员转储到磁盘中。 http://nosql.mypopescu.com/post/8652869828/another-redis-use-case- centralized-logging 我希望寻求理解,为什么不直接使用Redis持久化到磁盘?如果我分配了一

  • logging 模块自 2.3 版以来一直是 Python 标准库的一部分。在 PEP 282 中有对它的简洁描述。除了 基础日志教程 之外,这些文档是非常难以阅读的。 日志记录一般有两个目的: 诊断日志 记录与应用程序操作相关的日志。例如,当用户遇到程序报错时, 可通过搜索诊断日志以获得上下文信息。 审计日志 为商业分析而记录的日志。从审计日志中,可提取用户的交易信息, 并结合其他用户资料构成用

  • 我正在设置一个spring boot应用程序,其中日志被发送到google cloud stackdriver。我正在使用logback appender进行堆栈驱动程序日志记录,并使用其文档中的logback文件https://cloud.google.com/logging/docs/setup/java. 我将Intellij中的GOOGLE_CLOUD_PROJECT和GOOGLE_APP