java - 以编程方式使用下面的java代码创建一个appender,我需要使用我的partternLayout添加MDC

标签 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 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/

相关文章:

java - jquery datatables 未定义不是一个函数

java - log4j 2 向控制台附加程序添加多种颜色

java - Log4j警告: no appenders found even if it is there

java - log4j-to-slf4j 未获取 log4j2.xml

hadoop - 我可以在没有 IBM Cognos Transformer 的情况下自己编写 mdc 吗?

java - 树集比较器

java - 在递归中打印queue.peek()会打印不相关的值

java - 无法解析我在 Spring Cloud Stream 中通过绑定(bind)器接收到的 Json 对象

javascript - 如何使用 unpkg 作为 MDC CSS 文件和 s 文件的存储在 Web 应用程序上添加 Material Design 选项卡

java - 是否可以在 logback 中禁用特定附加程序/记录器的 MDC 日志记录字段?