Используйте MDC в ломбок slf4j - PullRequest
0 голосов
/ 28 июня 2018

Я работаю над приложением, которое интенсивно использует lombok Slf4j. Я хочу прикрепить некоторый идентификатор к журналам. Именно MDC решает эту проблему для Slf4j, но я хочу использовать это с lombok slf4j. Я искал в сети, но не смог найти никаких ресурсов. Есть ли способ или ресурсы, которые будут полезны?

1 Ответ

0 голосов
/ 28 июня 2018

Требуется некоторая конфигурация, но что вам нужно сделать.

Поместите некоторую зависимость в 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

особая благодарность этому ответу

...