java的springboot框架中使用logback日志框架使用RabbitHandler注解为什么获取不到消费的traceId信息?

这篇具有很好参考价值的文章主要介绍了java的springboot框架中使用logback日志框架使用RabbitHandler注解为什么获取不到消费的traceId信息?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当使用 Logback 日志框架和 RabbitMQ 的 @RabbitHandler 注解时,如果无法获取消费的 traceId 信息,可能是因为在处理 RabbitMQ 消息时,没有正确地将 traceId 传递到日志中。

为了将 traceId 传递到日志中,你可以利用 MDC(Mapped Diagnostic Context)机制。MDC 是一个线程绑定的上下文容器,允许你在整个线程处理过程中存储和访问自定义的上下文信息。

以下是一个示例,展示如何在 Spring Boot 应用程序中使用 Logback、RabbitMQ 和 MDC 来记录消费的 traceId 信息:

首先,在消息处理方法中,手动将 traceId 设置到 MDC 中。

import org.slf4j.MDC;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
@RabbitListener(queues = "your_queue_name")
public class RabbitMQConsumer {

    @RabbitHandler
    public void handleMessage(Message message) {
        // 从消息中获取 traceId
        String traceId = message.getTraceId();
        // 将 traceId 设置到 MDC 中
        MDC.put("traceId", traceId);

        // 处理消息的逻辑...

        // 完成后清除 MDC 中的 traceId
        MDC.remove("traceId");
    }
}
在上述示例中,我们使用 MDC.put("traceId", traceId) 将 traceId 设置到 MDC 中,并在消息处理完成后使用 MDC.remove("traceId") 清除。

接下来,在 Logback 配置文件中的日志输出模式中,添加 %X{traceId} 占位符来输出 traceId 信息。
xml
Copy code
<configuration>

  <!-- 其他配置项... -->

  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%date [%thread] [%X{traceId}] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <!-- 其他 appender 配置... -->

  <root level="INFO">
    <appender-ref ref="CONSOLE" />
  </root>

</configuration>
在上述示例中,我们将 %X{traceId} 添加到输出模式的 %date、%thread 和 %level 之间,以获取 traceId 信息。

通过上述配置,你应该能够在日志中看到消费的 traceId 信息了。确保在消息处理方法中正确设置和清除 MDC,并在日志输出模式中正确使用 %X{traceId} 占位符。文章来源地址https://www.toymoban.com/news/detail-707572.html

到了这里,关于java的springboot框架中使用logback日志框架使用RabbitHandler注解为什么获取不到消费的traceId信息?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot日志框架logback与log4j2

    目录 Springboot日志使用 Logback日志 日志格式 自定义日志格式 日志文件输出 Springboot启用log4j2日志框架 Springboot底层是使用slf4j+logback的方式进行日志记录 trace:级别最低 debug:调试级别的,常用于跟踪程序的进展 info:普通的打印信息(默认的日志级别) warn:警告级别,不影响

    2024年01月19日
    浏览(46)
  • Logback日志框架配置使用

    一、简述 Logback一个通用、快速而又灵活的Java日志框架。主要分为三个模块组成 logback-core: 其他两个模块的基础模块 logback-classic: 由log4j的改良版本,完整实现了slf4j的API,所以可以很方便的更换成其他日志系统如log4j或者JDK14 Logging logback-access:访问模块和Servlet容器集成提

    2024年02月11日
    浏览(44)
  • Spring Boot中@RabbitHandler注解的介绍、原理和使用

    在RabbitMQ中,消息的消费者需要根据不同的消息类型进行不同的处理。在Spring Boot中,我们可以通过 @RabbitHandler 注解来实现这一功能。本文将介绍Spring Boot中 @RabbitHandler 注解的介绍、原理和使用方法。 @RabbitHandler 注解是Spring AMQP提供的一种消费消息的方式。通过在消息监听方

    2024年02月09日
    浏览(36)
  • java springboot架构 自定义注解保存项目业务日志,使用线程池保存到数据库

    目录 1:pom.xml依赖 2:注解类样例 3:枚举类 4:具体处理方法类 5:线程池类 1:pom.xml依赖 2:注解类样例 3:枚举类 4:具体处理方法类 5:线程池类

    2024年02月15日
    浏览(50)
  • Springboot 使用logback直接将日志写入Elasticsearch,再通过kibana查看

    正常情况下,一般组合为elk 即日志会通过logstash写入es,但本文主要为轻量级项目直接利用appender写入Elasticsearch 如果没有则添加logback-spring.xml到resource目录的根目录下 另外我们也可以在root部分不适用es记录日志而在需要的代码中用如下方式记录日志 可以自动创建索引,不用手

    2024年02月16日
    浏览(37)
  • springboot日志使用 SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

    还是直接上代码 @Slf4j 这玩意 默认支持 不用引入 yml 配置文件 下面分享 xml 方式 在 资源目录下创建 logback-spring.xml 粘贴走 即可 重启 看控制台变化 还有磁盘 有没有写入 坑 : 我在创建的时候 发现 xml 没有生效 排查了半天 发现 在创建 logback-spring.xml 这个文件的时候 我不是手

    2024年04月22日
    浏览(80)
  • Spring Boot中集成各种日志框架Logback、Log4j2和Java Util Logging

    Spring Boot支持多种日志框架,包括Logback、Log4j2和Java Util Logging(JUL)。在Spring Boot中,可以通过简单的配置来集成这些热门的日志框架。 下面将详细说明如何集成Logback、Log4j2和Java Util Logging,并提供相应的源代码示例。 集成Logback: Logback是Spring Boot默认的日志框架,它提供了高

    2024年02月05日
    浏览(56)
  • 23、springboot日志使用入门-- SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

    就是springboot的默认的日志依赖实现。创建项目的时候存在这个依赖里面。 下面的日志实现就是基于 SLF4J+Logback SLF4J+Logback:SLF4J是门面,Logback是实现 设置日志的级别,可通过以下方式: ▲ 改变Spring Boot的核心日志级别 ▲ 改变程序组件(包括所有各种框架)的核心日志级别

    2024年02月03日
    浏览(61)
  • 【日志技术——Logback日志框架】

    1.引出 我们通常展示信息使用的是输出语句,但它有弊端,只能在控制台展示信息,不能灵活的指定日志输出的位置(文件,数据库),想加入或取消日志,需要修改源代码 2.日志技术 可以将系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中) 可以随

    2024年02月09日
    浏览(36)
  • 日志框架 --- Logback

    Logback是一个用于Java应用程序的日志框架,它由log4j框架的创始人Ceki Gülcü开发。logback是log4j框架的继承者和改进版,并提供了更好的性能、可扩展性和灵活性。与Log4j相比,Logback提供了更快的速度和更低的内存占用,这使得它成为大型企业级应用程序的理想选择。 Logback包括

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包