fix: extra fields in logs (#8009)

Potentially fixes #7995


  changed `span_data` to a `HashMap` and added a new check to remove span fields whose base names are already present on the event.


Co-Authored-By: PoulavBhowmick03 <bpoulav@gmail.com>

Co-Authored-By: Michael Sproul <michael@sigmaprime.io>
This commit is contained in:
Odinson
2025-09-09 13:39:03 +05:30
committed by GitHub
parent ee734d1456
commit 2b22903fba

View File

@@ -80,12 +80,11 @@ where
event.record(&mut visitor);
let mut span_data = Vec::new();
if let Some(scope) = ctx.event_scope(event) {
for span in scope.from_root() {
if let Some(data) = span.extensions().get::<SpanData>() {
span_data.extend(data.fields.clone());
}
}
if let Some(mut scope) = ctx.event_scope(event)
&& let Some(span) = scope.next()
&& let Some(data) = span.extensions().get::<SpanData>()
{
span_data.extend(data.fields.clone());
}
// Remove ascii control codes from message.