当前位置: 首页 > 知识库问答 >
问题:

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

萧波峻
2023-03-14

用Log4j2.xml用java编程创建一个appender需要用Log4j2的PatternLayout添加MDC键变量,谁能看下面的代码并告诉如何在looger.info调用之前添加其值将被替换的MDC变量

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);

==>logger.info的当前行为(“我们在这里”);是印“我们在这里”

我的期望是=>语句应该带有MDC键。

共有1个答案

濮丁雷
2023-03-14

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

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

MDC.put("someKey", someValue);
 类似资料:
  • 我试图在logback中动态添加一个appender。这是我的代码。 它工作正常,但仅适用于添加追加器的特定记录器。有没有办法让它适用于应用程序中的所有记录器?我正在寻找一种动态添加和删除追加器的方法。

  • Sales2文件--这是运行代码的文件,让用户输入他们的详细信息来计算并产生每个销售人员的佣金报告。

  • 我正在使用jhipster kafka实现,它使用confluentinc/cp-kafka: 5.4.0映像,当我尝试使用环境变量“KAFKA_CREATE_TOPICS:”创建Kafka主题时,我没有收到任何错误,但主题没有被创建,我在想三种不同的方法来解决这个问题, 通过 docker 撰写文件上的命令创建主题。 将Kafka和动物园管理员的形象更改为另一个像沃尔斯特迈斯特形象的形象。 在

  • 我希望我的应用程序允许拥有Facebook,Google,Amazon等帐户的用户能够登录到我的应用程序。这通过AWS Cognito运行良好。 但是,如果用户没有任何登录,应用程序是否可以通过编程方式创建用户登录? > 我不需要实现自己的身份验证机制,也不用担心密码是如何存储的。 根据我的研究,我认为现有的身份验证提供商甚至其他服务(如OpenID)都无法做到这一点。 如果我不想实现自己的登录存

  • 我以编程方式创建了一个子linearlayout,并以编程方式将其添加到父linearlayour上。 但是,我想再次将子布局添加到另一个linearlayout,它返回一个错误,是否可能?最好的方法是什么?

  • 我正在尝试在Android上添加Wifi网络,我想知道如何连接到不广播其SSID的Wifi网络(它是否有空SSID或带有\0s的清晰SSID)。 这是我目前用于广播其SSID的Wifi网络的内容: