我在 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 代码设置 literal(LOG_Batch) 的值。
Logger.debug("hello");
你好将作为 %message 值传递。但是如果我有一个变量
String log_batch="test";
如何将 log_batch 变量值传递给 JDBC appender。
最佳答案
PatternLayout 支持的任何模式都可以在列模式中使用,因此您可以将该值放入代码中的 ThreadContext 映射 (ThreadContext.put("log_batch", "test");
) 中,然后通过使用 <Column name="LOG_Batch" pattern="%X{log_batch}" />
配置附加程序将其插入数据库中.
关于java - 动态设置列值 JDBC Appender : Log4j2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24554373/