Кто-нибудь знает, как указать значение по умолчанию для отсутствующей записи в MDC, используя XML-файл конфигурации log4j? У меня есть приложение, определенное в моем файле XML, например:
<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}). Я искал вокруг и нашел только дубликаты одного и того же потока, говорящего что-то вроде строк $${orderID:-DefaultValue}, но это не работает в этом контексте. Мне нужно иметь возможность по умолчанию использовать значение 0 или -1 или какое-либо другое сигнальное значение, когда сообщения журнала получены в контекстах, которые не будут иметь идентификатора заказа.