Within log tail the logging event is queued and send later. At the moment of sending, the MDC field is already removed.
I made the following patch to Log tail that seems to fix the issue. At the moment of queuing the log event, I create a clone of the MDC context map so that I have the situation in the event as it was at the moment of logging.
class AsyncLogtailAppender : LogtailAppender() {
override fun append(event: ILoggingEvent) {
if (event is LoggingEvent) {
event.mdcPropertyMap = MDC.getCopyOfContextMap()
}
super.append(event)
}
}
Dear logtail team.
I think MDC fields are not properly logged due to the async approach of logtail. In my case I have a method like follows:
Within log tail the logging event is queued and send later. At the moment of sending, the MDC field is already removed.
I made the following patch to Log tail that seems to fix the issue. At the moment of queuing the log event, I create a clone of the MDC context map so that I have the situation in the event as it was at the moment of logging.