Мне нравится использовать поля журнала MDC в моих приложениях, потому что это делает поиск всех связанных строк журнала намного проще. Мне также кажется, что очистить контекст MDC в начале обработки намного проще, потому что я знаю, где находится точка входа в мое приложение, но есть много возможных путей исключения, когда я или другой разработчик могли забыть вызвать MDC.clear( ).
Итак, мой вопрос: есть ли какие-либо недостатки в том, как я это делаю? очистка контекста всегда, как правило, в начале обработки и в конце.
Чтобы было ясно, если бы я писал код с нуля, я бы сделал что-то вроде:
MDC.put();
try {
...
} finally {
MDC.clear();
}
Но иногда мне приходится использовать базовый класс или что-то из библиотеки, в которой нет кода, связанного с MDC, и поэтому я делаю это так, как я описал, потому что я не хочу копировать базовый класс из библиотеки только для того, чтобы добавить несколько строк кода MDC...