У меня есть приложение Spring MVC, в котором настроено ведение журнала с использованием SLF4J. Я использую два разных аспекта (используя spring-aop) для ведения журнала: один для регистрации всех входящих HTTP-запросов, а другой для регистрации асинхронных задач. Асинхронные задачи запускаются с помощью ExecutorService.
Насколько я понимаю, при использовании ExecutorService MDC порожденного потока не наследует уже установленные значения. Но похоже, что это так. Справедливо. Я просто вызываю org.slf4j.MDC.clear () в моем дочернем потоке, чтобы сбросить значения.
Моя проблема в том, что значения, которые я устанавливаю в порожденном дочернем потоке, также отображаются в исходном родительском потоке MDC.
Это нормально, или я что-то не так делаю? Есть ли способ предотвратить это?