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

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

tracing_subscriber/filter/
level.rs

1use tracing_core::{
2    collect::{Collect, Interest},
3    Metadata,
4};
5
6#[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/57411
7pub use tracing_core::metadata::{LevelFilter, ParseLevelFilterError as ParseError};
8
9// === impl LevelFilter ===
10
11impl<C: Collect> crate::Subscribe<C> for LevelFilter {
12    fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest {
13        if self >= metadata.level() {
14            Interest::always()
15        } else {
16            Interest::never()
17        }
18    }
19
20    fn enabled(&self, metadata: &Metadata<'_>, _: crate::subscribe::Context<'_, C>) -> bool {
21        self >= metadata.level()
22    }
23
24    fn max_level_hint(&self) -> Option<LevelFilter> {
25        (*self).into()
26    }
27}