diff --git a/tracing-core/src/collect.rs b/tracing-core/src/collect.rs index 78cec2ea12..80c3c12d2d 100644 --- a/tracing-core/src/collect.rs +++ b/tracing-core/src/collect.rs @@ -701,6 +701,11 @@ impl Collect for alloc::boxed::Box { self.as_ref().record_follows_from(span, follows) } + #[inline] + fn event_enabled(&self, event: &Event<'_>) -> bool { + self.as_ref().event_enabled(event) + } + #[inline] fn event(&self, event: &Event<'_>) { self.as_ref().event(event) @@ -772,6 +777,11 @@ impl Collect for alloc::sync::Arc { self.as_ref().record_follows_from(span, follows) } + #[inline] + fn event_enabled(&self, event: &Event<'_>) -> bool { + self.as_ref().event_enabled(event) + } + #[inline] fn event(&self, event: &Event<'_>) { self.as_ref().event(event) diff --git a/tracing-core/src/dispatch.rs b/tracing-core/src/dispatch.rs index 5b85dcde35..e95969037b 100644 --- a/tracing-core/src/dispatch.rs +++ b/tracing-core/src/dispatch.rs @@ -682,7 +682,10 @@ impl Dispatch { /// [`event`]: super::collect::Collect::event #[inline] pub fn event(&self, event: &Event<'_>) { - self.collector().event(event) + let collector = self.collector(); + if collector.event_enabled(event) { + collector.event(event); + } } /// Records that a span has been can_enter. diff --git a/tracing-subscriber/src/fmt/mod.rs b/tracing-subscriber/src/fmt/mod.rs index 34fd7ed497..d7abce1635 100644 --- a/tracing-subscriber/src/fmt/mod.rs +++ b/tracing-subscriber/src/fmt/mod.rs @@ -393,6 +393,11 @@ where self.inner.record_follows_from(span, follows) } + #[inline] + fn event_enabled(&self, event: &Event<'_>) -> bool { + self.inner.event_enabled(event) + } + #[inline] fn event(&self, event: &Event<'_>) { self.inner.event(event);