Skip to content

Commit e8cd629

Browse files
committed
add support for emitting span events
When emitted, the span events look like this (for an imaginary function called `print`, taking two arguments): ts=2025-08-29T13:29:27.488649565Z level=info target=_rsplayground span=print span_path=print message=new ts=2025-08-29T13:29:27.488658128Z level=info target=_rsplayground span=print span_path=print message=enter arg1="hello" arg2="world" ts=2025-08-29T13:29:27.488678624Z level=info target=_rsplayground span=print span_path=print message=exit ts=2025-08-29T13:29:27.488694014Z level=info target=_rsplayground span=print span_path=print message=close time.busy=20.5µs time.idle=23.7µs
1 parent 6cbaf5b commit e8cd629

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/formatter/builder.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use tracing::Subscriber;
22
use 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};
99
pub 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,6 +82,7 @@ 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
}

src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ mod serializer;
2020

2121
pub use crate::formatter::builder::{builder, Builder};
2222
pub use crate::formatter::{layer, EventsFormatter, FieldsFormatter};
23+
pub use tracing_subscriber::fmt::format::FmtSpan;

0 commit comments

Comments
 (0)