[−][src]Module tracing_subscriber::registry
Storage for span data shared by multiple Layer
s.
Using the Span Registry
This module provides the Registry
type, a Subscriber
implementation
which tracks per-span data and exposes it to Layer
s. When a Registry
is used as the base Subscriber
of a Layer
stack, the
layer::Context
type will provide methods allowing Layer
s to
look up span data stored in the registry. While Registry
is a
reasonable default for storing spans and events, other stores that implement
LookupSpan
, LookupMetadata
, and Subscriber
on themselves (with
SpanData
implemented on the data inside the store) can be used as a
drop-in replacement.
For example, we might create a Registry
and add multiple Layer
s like so:
use tracing_subscriber::{registry::Registry, Layer}; let subscriber = FooLayer::new() .and_then(BarLayer::new()) .with_subscriber(Registry::default());
If a type implementing Layer
depends on the functionality of a Registry
implementation, it should bound its Subscriber
type parameter with the
LookupSpan
trait, like so:
use tracing_subscriber::{registry, Layer}; use tracing_core::Subscriber; pub struct MyLayer { // ... } impl<S> Layer<S> for MyLayer where S: Subscriber + for<'a> registry::LookupSpan<'a>, { // ... }
When this bound is added, the Layer
implementation will be guaranteed
access to the Context
methods, such as Context::span
, that
require the root subscriber to be a registry.
Structs
Data | Span data stored in a |
Extensions | An immutable, read-only reference to a Span's extensions. |
ExtensionsMut | An mutable reference to a Span's extensions. |
FromRoot | An iterator over a span's parents, starting with the root of the trace tree. |
Parents | An iterator over the parents of a span. |
Registry | A shared, reusable store for spans. |
SpanRef |
Traits
LookupMetadata | Provides access to stored span metadata. |
LookupSpan | Provides access to stored span data. |
SpanData | A stored representation of data associated with a span. |