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

Spring boot 2和logback MDC with E reactor

穆智刚
2023-03-14

我有一个用spring 5和reactor编写的应用程序。我在订阅服务器上下文中输入了一些信息,比如用户id。现在我想记录这个用户id。我正在尝试使用MDC,但如果请求更改线程,我就会丢失信息。我该如何解决这个问题?有没有办法设置MDC,以便应用程序(包括外部库)周围的所有日志都使用订阅服务器上下文保存我输入的数据?我已经尝试了这里描述的方法,但效果很好,但它不能解决我在外部库日志方面的问题。

https://simonbasle.github.io/2018/02/contextual-logging-with-reactor-context-and-mdc/

共有1个答案

李云
2023-03-14

Spring Cloud Sleuth为此提供了一个解决方案

您需要将Spring云侦探依赖添加到项目中

要将自定义属性添加到sleuth上下文,请使用

MDC.put("userId", userId);
ExtraFieldPropagation.set("userId", userId);

这里的“userId”是用于传播值的键

要在线程更改时传播“userId”键,请使用

spring.sleuth.propagation-keys=userId
spring.sleuth.log.slf4j.whitelisted-mdc-keys=userId

您可以使用

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
  <layout>
    <Pattern>%X{userId} - %m%n</Pattern>
  </layout> 
</appender>
 类似资料:
  • 我正在尝试使用 https://github.com/spring-projects/spring-security-oauth2-boot 使用本教程:https://docs.spring.io/spring-security-oauth2-boot/docs/current-SNAPSHOT/reference/htmlsingle/ SpringBoot应用程序 服务器初始化器 用户详细信

  • 我试着用Springboot2做一些测试,特别是用Reactor(Flux/Mono)。我面临一个问题。 当我尝试使用一个存储库方法做检索我所有的人我使用该方法:@Tailable Flux findRetTailableCursorBy(); 但就我而言,我收到了这个错误 当我将我的收藏设置为“封顶”时,它就起作用了 但出于很多原因,我不会使用封顶系列 无法删除文档(必须删除收藏) 无法通过编程

  • 本文向大家介绍SpringBoot2 实现JPA分页和排序分页的案例,包括了SpringBoot2 实现JPA分页和排序分页的案例的使用技巧和注意事项,需要的朋友参考一下 分页 application.yml 实体类 Repository接口类 service 接口类 Service 实现类 Controller控制器类 分页显示的json格式串 http://localhost:8080/emp

  • 本文向大家介绍SpringBoot2.X Devtools热部署实现解析,包括了SpringBoot2.X Devtools热部署实现解析的使用技巧和注意事项,需要的朋友参考一下 pom文件引入所需jar包 springboot版本采用2.3.1 启动设置成热部署 修改代码后点击刷新即可 控制台重新打印SpringBoot图标就可以了 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多

  • 我试图配置一个SpringBoot应用程序,将度量导出到InfluxDB,以便使用Grafana仪表板可视化它们。我使用这个仪表板作为一个例子,它使用普罗米修斯作为后端。对于一些度量,我不知道如何为它们创建图,但对于其他一些度量,我不知道如何创建图,甚至不知道是否可能。所以我在以下几点中列举了我不太确定的事情: > 是否有描述价值单位的文档?我作为示例使用的应用程序没有任何负载,所以有时我不知道值

  • 本文向大家介绍SpringBoot2使用WebFlux函数式编程的方法,包括了SpringBoot2使用WebFlux函数式编程的方法的使用技巧和注意事项,需要的朋友参考一下 本文只是简单使用SpringBoot2使用WebFlux的函数式编程简单使用,后续会继续写关于Webflux相关的文章。 最近一直在研究WebFlux,后续会陆续出一些相关的文章。 首先看一下Srping官网上的一张图,对比

  • 本文向大家介绍基于springboot2集成jpa,创建dao的案例,包括了基于springboot2集成jpa,创建dao的案例的使用技巧和注意事项,需要的朋友参考一下 springboot中集成jpa需要再pom文件中添加jpa的jar包,使用springboot的话iju不用自己规定版本号了,自动管理依赖版本即可。 然后我们再添加hibernate和oracle的jar包,同样自动管理版本。

  • 本文向大家介绍SpringBoot2 JPA解决懒加载异常的问题,包括了SpringBoot2 JPA解决懒加载异常的问题的使用技巧和注意事项,需要的朋友参考一下 jpa解决懒加载异常 在我上一遍文章上进行行修改,SpringBoot2 实现JPA分页和排序分页 实体类上改: 控制器验证 我大概实现了一下,具体的如果大佬找到更好的方法或者发现我的方法是错的,希望各位大佬提醒一下!感谢! 补充:Sp