有谁知道如何使用 log4j 的配置 xml 为 MDC 中缺少的条目指定默认值?我在我的 XML 文件中定义了一个 appender,如下所示:
<appender name="DBAppender" class="org.apache.log4j.jdbc.JDBCAppender">
<param name="URL" value="jdbc:sqlserver://phenom\\MSSQLSERVER_2012\;databaseName=pickmax_express" />
<param name="Driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<param name="User" value="user" />
<param name="Password" value="password" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="INSERT INTO LOG (source, message, order_id, log_level) VALUES ( 'TESTSOURCE','%m', %X{orderID}, 0)"
/>
</layout>
</appender>
有问题的部分是来自 MDC (%X{orderID}) 的订单 ID。我四处搜索,只发现同一个线程的重复项说的是 $${orderID:-DefaultValue},但这在这种情况下不起作用。当在没有订单 ID 的上下文中收到日志消息时,我需要能够将值默认为 0 或 -1 或其他一些标记值