通过以下Java代码以编程方式创建附加器,我需要在partternLayout

时间:2019-04-30 12:43:06

标签: java log4j2 mdc

使用log4j2.xml在Java中以编程方式创建附加器 需要使用Log4j2的PatternLayout添加MDC密钥变量, 任何人都可以查看下面的代码,并告诉如何添加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 :(得分:0)

您的模式应包含%X{someKey}之类的内容。

然后在代码中,您将设置值,例如:

MDC.put("someKey", someValue);