Crate color_spantrace

source ·
Expand description

A rust library for colorizing tracing_error::SpanTrace objects in the style of color-backtrace.

Setup

Add the following to your Cargo.toml:

[dependencies]
color-spantrace = "0.2"
tracing = "0.1"
tracing-error = "0.2"
tracing-subscriber = "0.3"

Setup a tracing subscriber with an ErrorLayer:

use tracing_error::ErrorLayer;
use tracing_subscriber::{prelude::*, registry::Registry};

Registry::default().with(ErrorLayer::default()).init();

Create spans and enter them:

use tracing::instrument;
use tracing_error::SpanTrace;

#[instrument]
fn foo() -> SpanTrace {
    SpanTrace::capture()
}

And finally colorize the SpanTrace:

use tracing_error::SpanTrace;

let span_trace = SpanTrace::capture();
println!("{}", color_spantrace::colorize(&span_trace));

Output Format

Running examples/color-spantrace-usage.rs from the color-spantrace repo produces the following output:

 cargo run --example color-spantrace-usage
    Finished dev [unoptimized + debuginfo] target(s) in 0.04s
     Running `target/debug/examples/color-spantrace-usage`
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ SPANTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 0: color-spantrace-usage::two
    at examples/color-spantrace-usage.rs:18
 1: color-spantrace-usage::one with i=42
    at examples/color-spantrace-usage.rs:13

Structs

  • An error returned by set_theme if a global theme was already set
  • A struct that represents theme that is used by color_spantrace

Functions