动态设置列值JDBC Appender:Log4j2

时间:2014-07-03 12:59:15

标签: java logging configuration log4j2

我在log4j2 xml中配置了JDBC appender

<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" />

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

Logger.debug("hello");

你好将作为%消息值传递。但如果我有一个变量

String log_batch="test";

如何将log_batch变量值传递给JDBC appender。

1 个答案:

答案 0 :(得分:4)

PatternLayout支持的任何模式都可以在列模式中使用,因此您可以将该值放在代码中的ThreadContext映射(ThreadContext.put("log_batch", "test");)中,并通过使用{{1}配置appender将其插入到DB中}}