【问题标题】:Use MDC in lombok slf4j在 lombok slf4j 中使用 MDC
【发布时间】:2018-06-28 07:52:12
【问题描述】:

我正在开发一个大量使用 lombok Slf4j 的应用程序。我想在日志中附加一些标识符。 MDC 是为 Slf4j 解决此问题的解决方案,但我想将它与 lombok slf4j 一起使用。我在网上搜索但找不到任何资源。 有什么有用的方法或资源吗?

【问题讨论】:

  • 你有什么问题?它应该工作得很好。显示为您的代码。
  • 我找不到导入 MDC 的选项(如果我添加了 lombok slf4j)。如果我可以添加它,那么只有我可以在那里设置一些标识符。

标签: java logging slf4j lombok


【解决方案1】:

这需要一些配置,但你需要做什么。

在 pom.xml 中添加一些依赖

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>1.7.25</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>

配置 logback.xml

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%X{x} %msg%n</pattern>
        </encoder>
    </appender>


    <root level="trace">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

为任何类添加一些魔法

static {
    SLF4JBridgeHandler.removeHandlersForRootLogger();
    SLF4JBridgeHandler.install();
}

把所有的工作都付诸实践

@Log
public class App {    
    public static void main(String[] args) throws IOException {
        MDC.put("x", "MDC var");
        log.info("log message");
    }
}

运行并享受您的日志:

MDC var log message

特别感谢this answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 2014-11-22
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    相关资源
    最近更新 更多