我们如何在使用logback.xml和MDC的spring-boot日志中获取用户请求,响应和request-id以及process-id?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们如何在使用logback.xml和MDC的spring-boot日志中获取用户请求,响应和request-id以及process-id?相关的知识,希望对你有一定的参考价值。

我一直在尝试为我的spring-boot项目创建一个logback.xml日志记录模式,在其中可以得到一些要求。

我想以日志记录模式打印数据(例如process-idrequest-id,特定API请求的用户请求数据,相同请求的用户响应等)),使用 MDC,但是我找不到关于MDClogback.xml通信并插入所需值的任何解决方案。

我是spring-boot和Java开发的新手;请给我一些解决方案或想法。

答案

您可以使用put在MDC中添加值

MDC.put("process-id", "1");

然后定义一个日志模式,将这些值与%X一起使用

%X{process-id}

例如,您可以在application.properties中定义模式:

logging.pattern.console=%-4r [%thread] %-5level %X{process-id} - msg%n

或在logback.xml中]

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <layout>
      <Pattern>%-4r [%thread] %-5level %X{process-id} - msg%n</Pattern>
    </layout>       
</appender>
另一答案

[嗨,我有一个解决方案,Apache-Log4j给定一个类是ThreadContext。借助此类,我们可以在MDC上下文中添加/删除数据。

以上是关于我们如何在使用logback.xml和MDC的spring-boot日志中获取用户请求,响应和request-id以及process-id?的主要内容,如果未能解决你的问题,请参考以下文章

基于Slf4j的MDC实现日志链路串联

基于Slf4j的MDC实现日志链路串联

xml 安装介质中的SDL Tridion 2013 SP1内容交付Logback配置示例。这是你的logback.xml的一部分

xml 安装介质中的SDL Tridion 2013 SP1内容交付Logback配置示例。这是你的logback.xml的一部分

logback+spring实践

使用多个配置文件配置 logback