Crate tracing_log
source · [−]Expand description
Adapters for connecting unstructured log records from the log crate into
the tracing ecosystem.
Overview
tracing is a framework for instrumenting Rust programs with context-aware,
structured, event-based diagnostic information. This crate provides
compatibility layers for using tracing alongside the logging facade provided
by the log crate.
This crate provides:
AsTraceandAsLogtraits for converting betweentracingandlogtypes.LogTracer, alog::Logimplementation that consumeslog::Records and outputs them astracing::Event.- An
env_loggermodule, with helpers for using theenv_loggercrate withtracing(optional, enabled by theenv-loggerfeature).
Compiler support: requires rustc 1.42+
Usage
Convert log records to tracing Events
To convert log::Records as tracing::Events, set LogTracer as the default
logger by calling its init or init_with_filter methods.
use tracing_log::LogTracer;
use log;
LogTracer::init()?;
// will be available for Subscribers as a tracing Event
log::trace!("an example trace log");This conversion does not convert unstructured data in log records (such as
values passed as format arguments to the log! macro) to structured
tracing fields. However, it does attach these new events to to the
span that was currently executing when the record was logged. This is the
primary use-case for this library: making it possible to locate the log
records emitted by dependencies which use log within the context of a
trace.
Convert tracing Events to logs
Enabling the “log” and “log-always” feature flags on the tracing
crate will cause all tracing spans and events to emit log::Records as
they occur.
Caution: Mixing both conversions
Note that logger implementations that convert log records to trace events
should not be used with Subscribers that convert trace events back into
log records (such as the TraceLogger), as doing so will result in the
event recursing between the subscriber and the logger forever (or, in real
life, probably overflowing the call stack).
If the logging of trace events generated from log records produced by the
log crate is desired, either the log crate should not be used to
implement this logging, or an additional layer of filtering will be
required to avoid infinitely converting between Event and log::Record.
Feature Flags
trace-logger: enables an experimentallogsubscriber, deprecated since version 0.1.1.log-tracer: enables theLogTracertype (on by default)env_logger: enables theenv_loggermodule, with helpers for working with theenv_loggercrate.
Supported Rust Versions
Tracing is built against the latest stable release. The minimum supported version is 1.42. The current Tracing version is not guaranteed to build on Rust versions earlier than the minimum supported version.
Tracing follows the same compiler support policies as the rest of the Tokio project. The current stable Rust compiler and the three most recent minor versions before it will always be supported. For example, if the current stable compiler version is 1.45, the minimum supported version will not be increased past 1.42, three minor versions prior. Increasing the minimum supported compiler version is not considered a semver breaking change as long as doing so complies with this policy.
Re-exports
pub use log;Modules
An adapter for converting log records into tracing Events.
A tracing Subscriber that uses the log crate as a backend for
formatting tracing spans and events.
Structs
A simple “logger” that converts all log records into tracing Events.
A tracing Subscriber implementation that logs all recorded
trace events.
Traits
Trait implemented for tracing types that can be converted to a log
equivalent.
Trait implemented for log types that can be converted to a tracing
equivalent.
Extends log Events to provide complete Metadata.
Functions
Format a log record as a trace event in the current span.
