создавая appender с программным кодом ниже Java, мне нужно добавить MDC с моим partternLayout - PullRequest
1 голос
/ 30 апреля 2019

При создании приложения в java программно с помощью log4j2.xml необходимо добавить переменную ключа MDC с помощью PatternLayout из Log4j2, любой может заглянуть в код ниже и рассказать, как добавить переменную mdc, значение которой будет заменено, перед вызовом looger.info

PatternLayout layout = PatternLayout.newBuilder().withConfiguration(config)
            .withPattern("%d{HH:mm:ss.SSS} %level %msg%n").build();


final Appender appender = FileAppender.createAppender("target/test.log", "false", "false", "File", "true",
              "false", "false", "4000", layout, null, "false", null, config);
   appender.start();
   addAppender(appender);
   LoggerConfig loggerConfig = LoggerConfig.createLogger("false", "info", "org.apache.logging.log4j",
              "true", refs, null, config, null );
   loggerConfig.addAppender(appender, null, null);
   addLogger("com", loggerConfig);

Теперь мне нужно, чтобы всякий раз, когда печатались мои операторы журнала, они также печатали некоторое значение, сообщающее их состояние.

Как добавить ключ MDC при создании макета шаблона выше?

текущее поведение ==> logger.info ("Вот мы где");печатает "Вот и мы"

Я ожидаю, что => оператор должен прийти с ключом MDC.

1 Ответ

0 голосов
/ 30 апреля 2019

Ваш шаблон должен содержать что-то вроде %X{someKey}.

Затем в вашем коде вы должны установить значение, например:

MDC.put("someKey", someValue);
...