使用 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 key ?
当前行为 ==> logger.info("Here we are "); 正在打印“我们在这里”
我的期望是 => 语句应该带有 MDC key 。
最佳答案
您的模式应包含类似 %X{someKey}
的内容。
然后在您的代码中,您将设置该值,例如:
MDC.put("someKey", someValue);
关于java - 以编程方式使用下面的java代码创建一个appender,我需要使用我的partternLayout添加MDC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55921237/