Преглед изворни кода

util/log: hide the span fields except for the last span being shown. tidies up debug log output.

darkfi пре 8 месеци
родитељ
комит
fe32c5a6c0
1 измењених фајлова са 11 додато и 5 уклоњено
  1. 11 5
      src/util/logger.rs

+ 11 - 5
src/util/logger.rs

@@ -205,8 +205,11 @@ where
 
             let mut seen = false;
 
+            let spans: Vec<_> = scope.from_root().collect();
+            let last_span_idx = spans.len() - 1;
+
             // Displays the full span tree
-            for span in scope.from_root() {
+            for (span_idx, span) in spans.into_iter().enumerate() {
                 let span_name = bold.paint(span.metadata().name());
 
                 // Only need to show the span ID once for the root span
@@ -222,10 +225,13 @@ where
                 }
                 seen = true;
 
-                let ext = span.extensions();
-                if let Some(fields) = &ext.get::<FormattedFields<N>>() {
-                    if !fields.is_empty() {
-                        write!(writer, "{}{}{}", bold.paint("{"), fields, bold.paint("}"))?;
+                // Only show the fields of the last span
+                if span_idx == last_span_idx {
+                    let ext = span.extensions();
+                    if let Some(fields) = &ext.get::<FormattedFields<N>>() {
+                        if !fields.is_empty() {
+                            write!(writer, "{}{} {}", bold.paint("{"), fields, bold.paint("}"))?;
+                        }
                     }
                 }
                 write!(writer, "{}", dimmed.paint(":"))?;