in aws-xray-recorder-sdk-log4j/src/main/java/com/amazonaws/xray/log4j/Log4JSegmentListener.java [73:87]
public void onSetEntity(Entity oldEntity, Entity newEntity) {
if (newEntity == null) {
ThreadContext.remove(TRACE_ID_KEY);
return;
}
Segment segment = newEntity instanceof Segment ? ((Segment) newEntity) : newEntity.getParentSegment();
if (segment != null && segment.getTraceId() != null && segment.isSampled() && newEntity.getId() != null) {
String fullPrefix = StringValidator.isNullOrBlank(this.prefix) ? "" : this.prefix + ": ";
ThreadContext.put(TRACE_ID_KEY, fullPrefix + segment.getTraceId() + "@" + newEntity.getId());
} else {
ThreadContext.remove(TRACE_ID_KEY); // Ensure traces don't spill over to unlinked messages
}
}