动态设置列值 JDBC Appender:Log4j2

sau*_*yal 3 java configuration logging log4j2

我在 log4j2 xml 中配置了 JDBC 附加程序

<JDBC name="databaseAppender" tableName="TL_FX_LOG">
  <ConnectionFactory class="org.apache.jmeter.protocol.java.test.ConnectionFactory" method="getDatabaseConnection" />
  <Column name="LOG_DATE" isEventTimestamp="true" />
   <Column name="LOG_DESC" pattern="%message" />
      <Column name="LOG_Batch" literal="someproperty" />
Run Code Online (Sandbox Code Playgroud)

我需要从 Java 代码设置文字(LOG_Batch)的值。

Logger.debug("hello");
Run Code Online (Sandbox Code Playgroud)

hello 将作为 %message 值传递。但是如果我有一个变量

String log_batch="test";
Run Code Online (Sandbox Code Playgroud)

如何将 log_batch 变量值传递给 JDBC 附加程序。

Rem*_*pma 5

PatternLayout 支持的任何模式都可以在列模式中使用,因此您可以将该值放入ThreadContext.put("log_batch", "test");代码中的 ThreadContext 映射 () 中,并通过使用 .config 配置附加程序将其插入数据库中<Column name="LOG_Batch" pattern="%X{log_batch}" />