У нас есть система, которая использует многопоточность, чтобы она могла параллельно обрабатывать разные биты функциональности. Мы хотели бы найти способ связать все записи журнала для определенной «транзакции» вместе. Обычно можно использовать «threadName», чтобы собрать их вместе, но очевидно, что в многопоточной ситуации это не получается.
Если не передавать ключ транзакции при каждом вызове метода, я не вижу способа связать их вместе. И передача ключа в каждый метод просто ужасна.
Кроме того, мы как бы привязаны к ведению журнала Java, поскольку наша система построена на его модифицированной версии. Итак, я бы заинтересовался другими платформами для примеров того, что мы могли бы попробовать, но переключение платформ крайне маловероятно.
У кого-нибудь есть предложения?
Спасибо,
Питер
РЕДАКТИРОВАТЬ: К сожалению, я не могу контролировать создание потоков, поскольку все это обрабатывается пакетом рабочего процесса. В противном случае, идея кэширования идентификатора один раз для каждого потока (возможно, в ThreadLocal?), А затем установить его для новых потоков по мере их создания, является хорошей идеей. Я могу попробовать это в любом случае.