tracing_capture::predicates

Function ancestor

Source
pub fn ancestor<P>(matches: P) -> AncestorPredicate<P>
where P: for<'a> Predicate<CapturedSpan<'a>>,
Expand description

Creates a predicate for ancestor CapturedSpans of a span or a CapturedEvent. The predicate is true iff the wrapped span predicate holds true for any of the ancestors.

ยงExamples

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

let storage = storage.lock();
let parent_pred = level(Level::INFO) & name(eq("wrapper"));
let _ = storage.scan_events().single(&ancestor(parent_pred));