有人知道如何在使用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中的订单ID(%X{orderID})。我搜索了一下,只找到了重复的同一主题,大致意思是$${orderID:-DefaultValue},但在这种情况下不起作用。当日志消息在不会有订单ID的上下文中接收时,我需要将值默认为0或-1或其他标记值。