在Lombok slf4j中使用MDC

时间:2018-06-28 07:52:12

标签: java logging slf4j lombok

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

1 个答案:

答案 0 :(得分:0)

这需要一些配置,但是您需要做的事情。

在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