🛈 Note: This is pre-release documentation for the upcoming tracing 0.2.0 ecosystem.

For the release documentation, please see docs.rs, instead.

pub struct Filtered<S, F, C> { /* private fields */ }
Available on crate features registry and std only.
Expand description

A Subscribe that wraps an inner Subscribe and adds a Filter which controls what spans and events are enabled for that subscriber.

This is returned by the Subscribe::with_filter method. See the documentation on per-subscriber filtering for details.

Implementations§

source§

impl<S, F, C> Filtered<S, F, C>

source

pub fn new(subscriber: S, filter: F) -> Self

Wraps the provided Subscribe so that it is filtered by the given Filter.

This is equivalent to calling the Subscribe::with_filter method.

See the documentation on per-subscriber filtering for details.

source

pub fn filter(&self) -> &F

Borrows the Filter used by this subscribe.

source

pub fn filter_mut(&mut self) -> &mut F

Mutably borrows the Filter used by this subscriber.

This method is primarily expected to be used with the reload::Handle::modify method.

§Examples
let filtered_subscriber = fmt::subscriber().with_filter(filter::LevelFilter::WARN);
let (filtered_subscriber, reload_handle) = reload::Subscriber::new(filtered_subscriber);
info!("This will be ignored");
reload_handle.modify(|subscriber| *subscriber.filter_mut() = filter::LevelFilter::INFO);
info!("This will be logged");
source

pub fn inner(&self) -> &S

Borrows the inner subscriber wrapped by this Filtered subscriber.

source

pub fn inner_mut(&mut self) -> &mut S

Mutably borrows the inner subscriber wrapped by this Filtered subscriber.

This method is primarily expected to be used with the reload::Handle::modify method.

§Examples
let filtered_subscriber = fmt::subscriber().with_writer(non_blocking(std::io::stderr())).with_filter(filter::LevelFilter::INFO);
let (filtered_subscriber, reload_handle) = reload::Subscriber::new(filtered_subscriber);
info!("This will be logged to stderr");
reload_handle.modify(|subscriber| *subscriber.inner_mut().writer_mut() = non_blocking(std::io::stdout()));
info!("This will be logged to stdout");

Trait Implementations§

source§

impl<S: Clone, F: Clone, C: Clone> Clone for Filtered<S, F, C>

source§

fn clone(&self) -> Filtered<S, F, C>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F, L, S> Debug for Filtered<F, L, S>
where F: Debug, L: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<C, S, F> Subscribe<C> for Filtered<S, F, C>
where C: Collect + for<'span> LookupSpan<'span> + 'static, F: Filter<C> + 'static, S: Subscribe<C>,

source§

fn on_register_dispatch(&self, collector: &Dispatch)

Performs late initialization when installing this subscriber as a collector. Read more
source§

fn on_subscribe(&mut self, collector: &mut C)

Performs late initialization when attaching a subscriber to a collector. Read more
source§

fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest

Registers a new callsite with this subscriber, returning whether or not the subscriber is interested in being notified about the callsite, similarly to Collect::register_callsite. Read more
source§

fn enabled(&self, metadata: &Metadata<'_>, cx: Context<'_, C>) -> bool

Returns true if this subscriber is interested in a span or event with the given metadata in the current Context, similarly to Collect::enabled. Read more
source§

fn on_new_span(&self, attrs: &Attributes<'_>, id: &Id, cx: Context<'_, C>)

Notifies this subscriber that a new span was constructed with the given Attributes and Id.
source§

fn on_record(&self, span: &Id, values: &Record<'_>, cx: Context<'_, C>)

Notifies this subscriber that a span with the given Id recorded the given values.
source§

fn on_follows_from(&self, span: &Id, follows: &Id, cx: Context<'_, C>)

Notifies this subscriber that a span with the ID span recorded that it follows from the span with the ID follows.
source§

fn event_enabled(&self, event: &Event<'_>, cx: Context<'_, C>) -> bool

Called before on_event, to determine if on_event should be called.
source§

fn on_event(&self, event: &Event<'_>, cx: Context<'_, C>)

Notifies this subscriber that an event has occurred.
source§

fn on_enter(&self, id: &Id, cx: Context<'_, C>)

Notifies this subscriber that a span with the given ID was entered.
source§

fn on_exit(&self, id: &Id, cx: Context<'_, C>)

Notifies this subscriber that the span with the given ID was exited.
source§

fn on_close(&self, id: Id, cx: Context<'_, C>)

Notifies this subscriber that the span with the given ID has been closed.
source§

fn on_id_change(&self, old: &Id, new: &Id, cx: Context<'_, C>)

Notifies this subscriber that a span ID has been cloned, and that the subscriber returned a different ID.
source§

fn and_then<S>(self, subscriber: S) -> Layered<S, Self, C>
where S: Subscribe<C>, Self: Sized,

Composes this subscriber around the given collector, returning a Layered struct implementing Subscribe. Read more
source§

fn with_collector(self, inner: C) -> Layered<Self, C>
where Self: Sized,

Composes this subscriber with the given collector, returning a Layered struct that implements Collect. Read more
source§

fn with_filter<F>(self, filter: F) -> Filtered<Self, F, C>
where Self: Sized, F: Filter<C>,

Combines self with a Filter, returning a Filtered subscriber. Read more

Auto Trait Implementations§

§

impl<S, F, C> RefUnwindSafe for Filtered<S, F, C>

§

impl<S, F, C> Send for Filtered<S, F, C>
where F: Send, S: Send,

§

impl<S, F, C> Sync for Filtered<S, F, C>
where F: Sync, S: Sync,

§

impl<S, F, C> Unpin for Filtered<S, F, C>
where F: Unpin, S: Unpin,

§

impl<S, F, C> UnwindSafe for Filtered<S, F, C>
where F: UnwindSafe, S: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithCollector for T

source§

fn with_collector<C>(self, collector: C) -> WithDispatch<Self>
where C: Into<Dispatch>,

Attaches the provided collector to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_collector(self) -> WithDispatch<Self>

Attaches the current default collector to this type, returning a WithDispatch wrapper. Read more