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
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt;
use tracing_human_layer::HumanLayer;
tracing_subscriber::registry()
.with(HumanLayer::new())
.init();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.