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
ProvideStyle
implementation which stores a style for eachtracing::Level
. - Style
- The style for formatting a
tracing
event. - Text
Wrap Options Owned - Options for wrapping and filling text. Like
textwrap::Options
, but owned.
Traits§
- Provide
Style - A value that can provide a
Style
for a giventracing
event.