-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
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:
try {
MDC.put("TRACE_ID", UUID.randomUUID().toString());
LOG.info("Do your thing");
} finally {
MDC.remove("TRACE_ID");
}
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)
}
}vjlamp
Metadata
Metadata
Assignees
Labels
No labels