Выкладываю maven версию сборки проекта в mdc - PullRequest
1 голос
/ 29 марта 2019

Я работаю над загрузочным приложением java, созданным с помощью maven.

Предположим, мой pom.xml имеет версию 2.1.205.
Я хочу поместить его в slf4j MDC , так что при печати каждого журнала должна быть напечатана моя версия текущей сборки.

1 Ответ

0 голосов
/ 29 марта 2019

Сначала убедитесь, что вы сгенерировали банку с файлом свойств, в котором указан номер версии, как в этот ответ .

Затем, следуя " Использовать MDC (контекст диагностики сопоставления) в вашем журнале " из Мулен Рафаэль , определите макет шаблона в src/main/resources/log4j2.xml

<PatternLayout pattern="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{%X}{faint} %clr{:}{faint} %m%n%xwEx"> </PatternLayout>

Эта карта отображается в журналах, если в определении формата сообщения Log4j используется маска %X.
Это случай здесь, в нашем src/main/resources/log4j2.xml файле.

Напишите CommandLineRunner, который поместит правильное значение в ваш логлоггер.

package com.yourapp.mdc;

...
import org.slf4j.MDC;

@Component
public class Execute implements CommandLineRunner {
    ... 

    public void run(String... args) {
        MDC.put("Version", "Version as read from properties file");
        log.info("Test Log4j with MDC");
    }
}

Вы можете использовать этот регистратор в другом месте с:

private static final Logger log = LoggerFactory.getLogger(Example.class);
...