Skip to content

Commit

Permalink
subscriber: add example for reloading a global filtering layer (#1971)
Browse files Browse the repository at this point in the history
Missing example was noticed in
#1959 (comment)

Should the descriptions of the examples distinguish global filtering and
per-layer filtering a bit more explicitly?

Co-authored-by: Eliza Weisman <eliza@buoyant.io>
  • Loading branch information
TimoFreiberg and hawkw committed Mar 17, 2022
1 parent b37d0d3 commit cd12dae
Showing 1 changed file with 27 additions and 6 deletions.
33 changes: 27 additions & 6 deletions tracing-subscriber/src/reload.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,45 @@
//!
//! # Examples
//!
//! Reloading a [`Filtered`](crate::filter::Filtered) layer to change the filter at runtime.
//! Reloading a [global filtering](crate::layer#global-filtering) layer:
//!
//! ```rust
//! # use tracing::info;
//! use tracing_subscriber::{filter, fmt, reload, prelude::*};
//! let filter = filter::LevelFilter::WARN;
//! let (filter, reload_handle) = reload::Layer::new(filter);
//! tracing_subscriber::registry()
//! .with(filter)
//! .with(fmt::Layer::default())
//! .init();
//! #
//! # // specifying the Registry type is required
//! # let _: &reload::Handle<filter::LevelFilter, tracing_subscriber::Registry> = &reload_handle;
//! #
//! info!("This will be ignored");
//! reload_handle.modify(|filter| *filter = filter::LevelFilter::INFO);
//! info!("This will be logged");
//! ```
//!
//! Reloading a [`Filtered`](crate::filter::Filtered) layer:
//!
//! ```rust
//! # use tracing::info;
//! # use tracing_subscriber::{filter,fmt,reload,Registry,prelude::*};
//! # fn main() {
//! use tracing_subscriber::{filter, fmt, reload, prelude::*};
//! let filtered_layer = fmt::Layer::default().with_filter(filter::LevelFilter::WARN);
//! let (filtered_layer, reload_handle) = reload::Layer::new(filtered_layer);
//! #
//! # // specifying the Registry type is required
//! # let _: &reload::Handle<filter::Filtered<fmt::Layer<Registry>,
//! # filter::LevelFilter, Registry>,Registry>
//! # let _: &reload::Handle<filter::Filtered<fmt::Layer<tracing_subscriber::Registry>,
//! # filter::LevelFilter, tracing_subscriber::Registry>,tracing_subscriber::Registry>
//! # = &reload_handle;
//! #
//! tracing_subscriber::registry()
//! .with(filtered_layer)
//! .init();
//! info!("This will be ignored");
//! reload_handle.modify(|layer| *layer.filter_mut() = filter::LevelFilter::INFO);
//! info!("This will be logged");
//! # }
//! ```
//!
//! [`Layer` type]: struct.Layer.html
Expand Down

0 comments on commit cd12dae

Please sign in to comment.