From e6c739aeb063abaafe1304f0e00376694e5bc110 Mon Sep 17 00:00:00 2001 From: Gus Wynn Date: Wed, 2 Feb 2022 15:10:42 -0800 Subject: [PATCH] implement fully_enabled --- tracing-core/src/dispatcher.rs | 6 ++ tracing-core/src/subscriber.rs | 15 +++ tracing-opentelemetry/trace.png | Bin 87211 -> 0 bytes .../src/filter/layer_filters/mod.rs | 16 +++ tracing-subscriber/src/layer/layered.rs | 31 ++++++ tracing-subscriber/src/layer/mod.rs | 5 + .../tests/layer_filters/combinators.rs | 2 +- .../tests/layer_filters/main.rs | 2 + tracing/src/macros.rs | 94 +++++++++++++----- 9 files changed, 144 insertions(+), 27 deletions(-) delete mode 100644 tracing-opentelemetry/trace.png diff --git a/tracing-core/src/dispatcher.rs b/tracing-core/src/dispatcher.rs index a52ea8fae8..ab4a3605c0 100644 --- a/tracing-core/src/dispatcher.rs +++ b/tracing-core/src/dispatcher.rs @@ -504,6 +504,12 @@ impl Dispatch { self.subscriber.enabled(metadata) } + #[inline] + #[doc(hidden)] + pub fn fully_enabled(&self, metadata: &Metadata<'_>) -> bool { + self.subscriber.fully_enabled(metadata) + } + /// Records that an [`Event`] has occurred. /// /// This calls the [`event`] function on the [`Subscriber`] that this diff --git a/tracing-core/src/subscriber.rs b/tracing-core/src/subscriber.rs index 11695e5382..f55f26d09f 100644 --- a/tracing-core/src/subscriber.rs +++ b/tracing-core/src/subscriber.rs @@ -171,6 +171,11 @@ pub trait Subscriber: 'static { /// [`register_callsite`]: #method.register_callsite fn enabled(&self, metadata: &Metadata<'_>) -> bool; + #[doc(hidden)] + fn fully_enabled(&self, metadata: &Metadata<'_>) -> bool { + self.enabled(metadata) + } + /// Returns the highest [verbosity level][level] that this `Subscriber` will /// enable, or `None`, if the subscriber does not implement level-based /// filtering or chooses not to implement this method. @@ -606,6 +611,11 @@ impl Subscriber for Box { self.as_ref().enabled(metadata) } + #[inline] + fn fully_enabled(&self, metadata: &Metadata<'_>) -> bool { + self.as_ref().fully_enabled(metadata) + } + #[inline] fn max_level_hint(&self) -> Option { self.as_ref().max_level_hint() @@ -683,6 +693,11 @@ impl Subscriber for Arc { self.as_ref().enabled(metadata) } + #[inline] + fn fully_enabled(&self, metadata: &Metadata<'_>) -> bool { + self.as_ref().fully_enabled(metadata) + } + #[inline] fn max_level_hint(&self) -> Option { self.as_ref().max_level_hint() diff --git a/tracing-opentelemetry/trace.png b/tracing-opentelemetry/trace.png deleted file mode 100644 index 4cb98d135830218144b8e6575a41233d344a00e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87211 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

`s)6FQc|!d{!W7d0?mAWX#Gzq^{{ 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 diff --git a/tracing-subscriber/src/filter/layer_filters/mod.rs b/tracing-subscriber/src/filter/layer_filters/mod.rs index d391d31b22..86c4016131 100644 --- a/tracing-subscriber/src/filter/layer_filters/mod.rs +++ b/tracing-subscriber/src/filter/layer_filters/mod.rs @@ -543,6 +543,22 @@ where } } + fn fully_enabled(&self, metadata: &Metadata<'_>, cx: Context<'_, S>) -> bool { + let cx = cx.with_filter(self.id()); + let enabled = self.filter.enabled(metadata, &cx); + FILTERING.with(|filtering| filtering.set(self.id(), enabled)); + + println!("GUS: {}", enabled); + if enabled { + // If the filter enabled this metadata, ask the wrapped layer if + // _it_ wants it --- it might have a global filter. + self.layer.fully_enabled(metadata, cx) + } else { + // ORDERED + false + } + } + fn on_new_span(&self, attrs: &span::Attributes<'_>, id: &span::Id, cx: Context<'_, S>) { self.did_enable(|| { self.layer.on_new_span(attrs, id, cx.with_filter(self.id())); diff --git a/tracing-subscriber/src/layer/layered.rs b/tracing-subscriber/src/layer/layered.rs index c690764add..ba07ac32cf 100644 --- a/tracing-subscriber/src/layer/layered.rs +++ b/tracing-subscriber/src/layer/layered.rs @@ -91,6 +91,25 @@ where } } + #[doc(hidden)] + fn fully_enabled(&self, metadata: &Metadata<'_>) -> bool { + println!("Layered::Subscriber::fully_enabled"); + if self.layer.fully_enabled(metadata, self.ctx()) { + // if the outer layer enables the callsite metadata, ask the subscriber. + self.inner.fully_enabled(metadata) + } else { + // otherwise, the callsite is disabled by the layer + + // If per-layer filters are in use, and we are short-circuiting + // (rather than calling into the inner type), clear the current + // per-layer filter `enabled` state. + #[cfg(feature = "registry")] + filter::FilterState::clear_enabled(); + + false + } + } + fn max_level_hint(&self) -> Option { self.pick_level_hint(self.layer.max_level_hint(), self.inner.max_level_hint()) } @@ -228,6 +247,18 @@ where } } + #[doc(hidden)] + fn fully_enabled(&self, metadata: &Metadata<'_>, ctx: Context<'_, S>) -> bool { + println!("Layered::Layer::fully_enabled"); + if self.layer.fully_enabled(metadata, ctx.clone()) { + // if the outer subscriber enables the callsite metadata, ask the inner layer. + self.inner.fully_enabled(metadata, ctx) + } else { + // otherwise, the callsite is disabled by this layer + false + } + } + fn max_level_hint(&self) -> Option { self.pick_level_hint(self.layer.max_level_hint(), self.inner.max_level_hint()) } diff --git a/tracing-subscriber/src/layer/mod.rs b/tracing-subscriber/src/layer/mod.rs index d041d7f78c..c477fec298 100644 --- a/tracing-subscriber/src/layer/mod.rs +++ b/tracing-subscriber/src/layer/mod.rs @@ -648,6 +648,11 @@ where true } + #[doc(hidden)] + fn fully_enabled(&self, metadata: &Metadata<'_>, ctx: Context<'_, S>) -> bool { + self.enabled(metadata, ctx) + } + /// Notifies this layer that a new span was constructed with the given /// `Attributes` and `Id`. fn on_new_span(&self, attrs: &span::Attributes<'_>, id: &span::Id, ctx: Context<'_, S>) { diff --git a/tracing-subscriber/tests/layer_filters/combinators.rs b/tracing-subscriber/tests/layer_filters/combinators.rs index 6052a2d00c..5921d71cbb 100644 --- a/tracing-subscriber/tests/layer_filters/combinators.rs +++ b/tracing-subscriber/tests/layer_filters/combinators.rs @@ -1,6 +1,6 @@ use super::*; use tracing_subscriber::{ - filter::{filter_fn, FilterExt, LevelFilter}, + filter::{FilterExt, LevelFilter}, prelude::*, }; diff --git a/tracing-subscriber/tests/layer_filters/main.rs b/tracing-subscriber/tests/layer_filters/main.rs index 2359584d72..c79fb9dacf 100644 --- a/tracing-subscriber/tests/layer_filters/main.rs +++ b/tracing-subscriber/tests/layer_filters/main.rs @@ -3,8 +3,10 @@ mod support; use self::support::*; mod boxed; +mod combinators; mod downcast_raw; mod filter_scopes; +mod fully_enabled; mod targets; mod trees; diff --git a/tracing/src/macros.rs b/tracing/src/macros.rs index 55fc881e8b..67e8c26c82 100644 --- a/tracing/src/macros.rs +++ b/tracing/src/macros.rs @@ -868,32 +868,9 @@ macro_rules! event { /// #[macro_export] macro_rules! enabled { - (target: $target:expr, $lvl:expr, { $($fields:tt)* } )=> ({ - if $crate::level_enabled!($lvl) { - use $crate::__macro_support::Callsite as _; - static CALLSITE: $crate::__macro_support::MacroCallsite = $crate::callsite2! { - name: concat!( - "enabled ", - file!(), - ":", - line!() - ), - kind: $crate::metadata::Kind::HINT, - target: $target, - level: $lvl, - fields: $($fields)* - }; - let interest = CALLSITE.interest(); - if !interest.is_never() && CALLSITE.is_enabled(interest) { - let meta = CALLSITE.metadata(); - $crate::dispatcher::get_default(|current| current.enabled(meta)) - } else { - false - } - } else { - false - } - }); + (target: $target:expr, $lvl:expr, { $($fields:tt)* } )=> ( + $crate::_enabled!(enabled, target: $target, $lvl, { $($fields:tt)* } ) + ); // Just target and level (target: $target:expr, $lvl:expr ) => ( $crate::enabled!(target: $target, $lvl, { }) @@ -921,6 +898,71 @@ macro_rules! enabled { ); } +/// TODO +#[macro_export] +macro_rules! fully_enabled { + (target: $target:expr, $lvl:expr, { $($fields:tt)* } )=> ( + $crate::_enabled!(fully_enabled, target: $target, $lvl, { $($fields:tt)* } ) + ); + // Just target and level + (target: $target:expr, $lvl:expr ) => ( + $crate::fully_enabled!(target: $target, $lvl, { }) + ); + + // These two cases handle fields with no values + (target: $target:expr, $lvl:expr, $($field:tt)*) => ( + $crate::fully_enabled!( + target: $target, + $lvl, + { $($field)*} + ) + ); + ($lvl:expr, $($field:tt)*) => ( + $crate::fully_enabled!( + target: module_path!(), + $lvl, + { $($field)*} + ) + ); + + // Simplest `enabled!` case + ( $lvl:expr ) => ( + $crate::fully_enabled!(target: module_path!(), $lvl, { }) + ); +} + +/// TODO +#[doc(hidden)] +#[macro_export] +macro_rules! _enabled { + ($style:tt, target: $target:expr, $lvl:expr, { $($fields:tt)* } )=> ({ + if $crate::level_enabled!($lvl) { + use $crate::__macro_support::Callsite as _; + static CALLSITE: $crate::__macro_support::MacroCallsite = $crate::callsite2! { + name: concat!( + "enabled ", + file!(), + ":", + line!() + ), + kind: $crate::metadata::Kind::HINT, + target: $target, + level: $lvl, + fields: $($fields)* + }; + let interest = CALLSITE.interest(); + if !interest.is_never() && CALLSITE.is_enabled(interest) { + let meta = CALLSITE.metadata(); + $crate::dispatcher::get_default(|current| current.$style(meta)) + } else { + false + } + } else { + false + } + }); +} + /// Constructs an event at the trace level. /// /// This functions similarly to the [`event!`] macro. See [the top-level