商城首页欢迎来到中国正版软件门户

您的位置:首页 >New Relic 记录 MDC 上下文方法

New Relic 记录 MDC 上下文方法

  发布于2025-12-07 阅读(0)

扫一扫,手机访问

在 New Relic 中记录 MDC 上下文值

在 New Relic 中记录 MDC 上下文值

通常情况下,虽然 MDC 值能在本地控制台或日志文件中正常输出,但可能无法在 New Relic 中显示。本文将提供一种解决方案,通过配置 newrelic.yml 文件来启用 Diagnostic Context 的转发,从而使 MDC 值能够正确地记录到 New Relic。

配置 newrelic.yml 文件

New Relic 提供了一个标志,用于将 Diagnostic Context 转发到 New Relic Agent。我们需要在 newrelic.yml 文件中启用此标志。

打开你的 newrelic.yml 文件,并添加或修改以下配置:

common: &default_settings
    # forwad Diagnostic Context to new relic agent
    forwarding:
        context_data:
            enabled: true

解释:

  • common: 定义了通用配置。
  • forwarding: 定义了转发相关的配置。
  • context_data: 定义了上下文数据转发的配置。
  • enabled: true: 启用 Diagnostic Context 的转发。

注意事项:

  • 确保你的 newrelic.yml 文件位于 Spring Boot 项目的正确位置(通常是 src/main/resources 目录下)。
  • 确保 New Relic Agent 已正确安装并配置。
  • 修改 newrelic.yml 文件后,需要重启 Spring Boot 应用才能使配置生效。

示例 Logback 配置 (logback.xml)

虽然上述 newrelic.yml 的配置是关键,但为了确保 MDC 值被正确设置和使用,这里提供一个 Logback 配置示例供参考。请注意,你可能已经有类似的配置,只需确保使用了 NewRelicEncoder 和 NewRelicAsyncAppender。

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.FileAppender">
        <file>logs/logback-app.log</file>
        <append>false</append>
        <encoder class="com.newrelic.logging.logback.NewRelicEncoder">
        </encoder>
    </appender>

    <appender name="ASYNC" class="com.newrelic.logging.logback.NewRelicAsyncAppender">
        <appender-ref ref="STDOUT" />
    </appender>

    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%X{request-id} %d %-5level [%thread] %logger{0}: %msg%n</pattern>
        </encoder>
    </appender>

    <root level="TRACE">
        <appender-ref ref="ASYNC" />
        <appender-ref ref="Console" />
    </root>
</configuration>

解释:

  • NewRelicEncoder: 使用 New Relic 提供的编码器来格式化日志消息,以便 New Relic Agent 可以正确解析和收集。
  • NewRelicAsyncAppender: 使用异步 appender 来提高性能,避免阻塞主线程。

总结

通过在 newrelic.yml 文件中启用 Diagnostic Context 的转发,以及正确配置 Logback,可以确保 MDC 上下文值能够正确地记录到 New Relic 中。这对于追踪请求、排查问题以及监控应用性能非常有帮助。 请确保按照上述步骤操作,并根据实际情况进行调整。如果问题仍然存在,请检查 New Relic Agent 的版本和配置,以及 Logback 的依赖是否正确。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注