[][src]Crate tracing_subscriber

Utilities for implementing and composing tracing subscribers.

tracing is a framework for instrumenting Rust programs to collect scoped, structured, and async-aware diagnostics. The Subscriber trait represents the functionality necessary to collect this trace data. This crate contains tools for composing subscribers out of smaller units of behaviour, and batteries-included implementations of common subscriber functionality.

tracing-subscriber is intended for use by both Subscriber authors and application authors using tracing to instrument their applications.

Included Subscribers

The following Subscribers are provided for application authors:

  • fmt - Formats and logs tracing data (requires the fmt feature flag)

Feature Flags

  • env-filter: Enables the EnvFilter type, which implements filtering similar to the env_logger crate. Enabled by default.
  • fmt: Enables the fmt module, which provides a subscriber implementation for printing formatted representations of trace events. Enabled by default.
  • ansi: Enables fmt support for ANSI terminal colors. Enabled by default.
  • registry: enables the registry module. Enabled by default.
  • json: Enables fmt support for JSON output. In JSON output, the ANSI feature does nothing.

Optional Dependencies

  • tracing-log: Enables better formatting for events emitted by log macros in the fmt subscriber. On by default.
  • chrono: Enables human-readable time formatting in the fmt subscriber. Enabled by default.
  • smallvec: Causes the EnvFilter type to use the smallvec crate (rather than Vec) as a performance optimization. Enabled by default.
  • parking_lot: Use the parking_lot crate's RwLock implementation rather than the Rust standard library's implementation.


pub use layer::Layer;
pub use fmt::Subscriber as FmtSubscriber;
pub use fmt::fmt;



Utilities for working with fields and field visitors.


Layers that control which spans and events are enabled by the wrapped subscriber.


A Subscriber for formatting and logging tracing data.


A composable abstraction for building Subscribers.


The tracing-subscriber prelude.


Storage for span data shared by multiple Layers.


Wrapper for a Layer to allow it to be dynamically reloaded.


Extension traits and other utilities to make working with subscribers more ergonomic.



Tracks the currently executing span on a per-thread basis.


A Layer which filters spans and events based on a set of filter directives.


A shared, reusable store for spans.