tracing_capture::predicates

Function level

Source
pub fn level<P: IntoLevelPredicate>(matches: P) -> LevelPredicate<P::Predicate>
Expand description

Creates a predicate for the [Level] of a CapturedSpan or CapturedEvent.

§Arguments

The argument of this function may be:

  • [Level]: will be compared exactly
  • [LevelFilter]: will be compared as per ordinary rules
  • Any Predicate for [Level]. To bypass Rust orphaning rules, the predicate must be enclosed in square brackets (i.e., a one-value array).

§Examples

let storage = SharedStorage::default();
let subscriber = Registry::default().with(CaptureLayer::new(&storage));
tracing::subscriber::with_default(subscriber, || {
    tracing::info_span!("compute").in_scope(|| {
        tracing::info!(answer = 42, "done");
    });
});

let storage = storage.lock();
// All of these access the single captured span.
let spans = storage.scan_spans();
let _ = spans.single(&level(Level::INFO));
let _ = spans.first(&level(LevelFilter::DEBUG));
let _ = spans.last(&level([gt(Level::WARN)]));