11use tracing:: Subscriber ;
22use tracing_subscriber:: {
3- fmt:: { Layer , SubscriberBuilder } ,
3+ fmt:: { format :: FmtSpan , Layer , SubscriberBuilder } ,
44 registry:: LookupSpan ,
55} ;
66
@@ -9,6 +9,7 @@ use crate::{EventsFormatter, FieldsFormatter};
99pub struct Builder {
1010 events : EventsFormatter ,
1111 fields : FieldsFormatter ,
12+ span_events : FmtSpan ,
1213}
1314
1415/// Create a builder that can be used to configure the formatter.
@@ -34,6 +35,7 @@ impl Builder {
3435 Self {
3536 events : EventsFormatter :: default ( ) ,
3637 fields : FieldsFormatter :: default ( ) ,
38+ span_events : FmtSpan :: NONE ,
3739 }
3840 }
3941
@@ -53,6 +55,10 @@ impl Builder {
5355 self . events . with_span_path = enable;
5456 self
5557 }
58+ pub fn with_span_events ( mut self , kind : FmtSpan ) -> Self {
59+ self . span_events = kind;
60+ self
61+ }
5662 pub fn with_location ( mut self , enable : bool ) -> Self {
5763 self . events . with_location = enable;
5864 self
@@ -76,12 +82,14 @@ impl Builder {
7682 S : Subscriber + for < ' a > LookupSpan < ' a > ,
7783 {
7884 tracing_subscriber:: fmt:: layer ( )
85+ . with_span_events ( self . span_events )
7986 . event_format ( self . events )
8087 . fmt_fields ( self . fields )
8188 }
8289
8390 pub fn subscriber_builder ( self ) -> SubscriberBuilder < FieldsFormatter , EventsFormatter > {
8491 tracing_subscriber:: fmt:: Subscriber :: builder ( )
92+ . with_span_events ( self . span_events )
8593 . event_format ( self . events )
8694 . fmt_fields ( self . fields )
8795 }
0 commit comments