java - 为每条日志消息添加自定义值

标签 java spring-boot slf4j

假设我有一个端点为 /user/{user_id}/foo 的 REST API。 现在,当它被调用时,我希望来自处理此请求的所有日志都包含有关 {user_id} 的信息。是否可以在不将 {user_id} 传递给每个方法的情况下实现这一目标?

我使用 SLF4j 进行日志记录,我的应用程序基于 Spring Boot。

最佳答案

您也可以为此使用 MDC,请参阅 here .它本质上是一张 map ,您只需将上下文信息放入其中(例如用户 ID),然后您就可以在日志布局中使用它。请注意,这仅适用于某些底层框架,例如 logback,其中示例布局模式如下所示:

<Pattern>%X{user_id} %m%n</Pattern>

检查 logback manual有关这方面的更多详细信息。

关于java - 为每条日志消息添加自定义值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46526190/

相关文章:

java - 使用 Spring Boot 注册普通 java 类

Java:Maven clean 后构建中缺少 log4j.properties

maven - 如何配置 Intellij 日志级别以调试 Maven 输出

java - 将 @Autowired 与 AspectJ 和 Springboot 一起使用

java - 将控制台消息从 Eclipse 写入文件

java - 如何在 M1 MacBook 上使用 JavaFX?

java - 父类(super class)构造函数实际上指的是什么?类或该类的对象(或两者都不是?)

java - 无法从 WebFilter 发送 json 响应

java - 如何在我的 Gradle 项目中使用 slf4j 在 IntelliJ 中获取日志记录输出?

java - Integer.toHexString 的结果是否取决于系统字节序?