Expand description
§tracing-human-layer
A human-friendly and colorful terminal output
tracing_subscriber::Layer for
tracing.
Features:
- Line-wrapping (optional)
- Colorful output (customizable and optional)
- Blank lines between long log messages
- One-line format for short log messages with one short field

§Quick start
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt;
use tracing_human_layer::HumanLayer;
tracing_subscriber::registry()
.with(HumanLayer::new())
.init();§Performance
TL;DR: Half of the cost of logging is writing to stderr.
I haven’t done too much performance work on tracing-human-layer, but I do
have a couple benchmarks. It seems to take 1.92-6.17µs to format an event
(including emitting a span and event), with the exact cost depending on
whether or not color output (HumanLayer::with_color_output)
or text wrapping (HumanLayer::with_textwrap_options) is enabled.
Formatting an event and writing it to stderr takes 12.55µs, so actually showing the logs to the user is about 2× slower than just formatting them.
Structs§
- Human
Layer - A human-friendly
tracing_subscriber::Layer. - Layer
Styles - A simple
ProvideStyleimplementation which stores a style for eachtracing::Level. - Style
- The style for formatting a
tracingevent. - Text
Wrap Options Owned - Options for wrapping and filling text. Like
textwrap::Options, but owned.
Traits§
- Provide
Style - A value that can provide a
Stylefor a giventracingevent.