Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过编程方式使用下面的java代码创建appender,我需要在partternLayout中添加MDC_Java_Log4j2_Mdc - Fatal编程技术网

通过编程方式使用下面的java代码创建appender,我需要在partternLayout中添加MDC

通过编程方式使用下面的java代码创建appender,我需要在partternLayout中添加MDC,java,log4j2,mdc,Java,Log4j2,Mdc,使用log4j2.xml在java中以编程方式创建追加器 需要添加模式布局为Log4j2的MDC键变量, 任何人都可以查看下面的代码并告诉如何添加mdc变量,该变量的值将在调用looger.info之前被替换 PatternLayout layout = PatternLayout.newBuilder().withConfiguration(config) .withPattern("%d{HH:mm:ss.SSS} %level %msg%n").build();

使用log4j2.xml在java中以编程方式创建追加器 需要添加模式布局为Log4j2的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键一起提供。

您的模式应该包含类似于
%X{someKey}
的内容

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

MDC.put("someKey", someValue);

您的模式应该包含类似于
%X{someKey}
的内容

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

MDC.put("someKey", someValue);

我尝试使用下面的模式布局patternayout=patternayout.newBuilder().withConfiguration(config).withPattern(“%d{HH:mm:ss.SSS}%5{mdckey}%level%msg%n”).build();但它并没有打印它..它应该是
%X
,而不是
%5
.PatternLayout.newBuilder().withConfiguration(config).withPattern(“%d{HH:mm:ss.SSS.SSS}%5x{mdckey}%level%msg%n”).build()也完全是
%X{mdckey}
。我试着用下面的pattern布局PatternLayout=PatternLayout.newBuilder().withConfiguration(配置).withPattern(“%d{HH:mm:ss.SSS}%5{mdckey}%level%msg%n”).build();但它没有打印它。它应该是
%X
,而不是
%5
.PatternLayout.newBuilder()。withConfiguration(配置)。withPattern(“%d{HH:mm:ss.SSS}%5x{mdckey}%level%msg%n”).build()也应该是
%X{mdckey}/code>。