К сожалению, logback записывает только имя потока в его LoggingEvent
. то есть logback не захватывает идентификатор потока или любую другую информацию о потоке, который зарегистрировал событие.
Проблема с вашим предлагаемым решением состоит в том, что предполагается, что текущий поток является потоком, в котором LoggingEvent
было сгенерировано, что не всегда будет так. Например, если используется асинхронный appender, текущий поток, в котором вызывается конвертер, будет потоком, который кодирует событие, а не потоком, который зарегистрировал событие.
Если вы not с использованием асинхронного приложения, тогда вы можете использовать Thread.currentThread()
в конвертере, как вы это сделали. Или (поскольку вы пометили вопрос с помощью logsta sh -logback-encoder), вы можете реализовать свой собственный JsonProvider
, чтобы зарегистрировать идентификатор потока / identityHashCode как поле JSON.