[][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.
  • filter: Alias for env-filter. This feature flag was renamed in version 0.1.2, and will be removed in version 0.2.
  • 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.

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 filter::Filter;
pub use layer::Layer;
pub use fmt::Subscriber as FmtSubscriber;



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.


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



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


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