#tracing #error #printing #spans #applications #span-trace #color-backtrace

color-spantrace

基于 color-backtrace 的 tracing_error::SpanTrace 美化打印工具

9 个版本

0.2.1 2023 年 11 月 17 日
0.2.0 2022 年 1 月 13 日
0.1.6 2020 年 12 月 2 日
0.1.4 2020 年 7 月 6 日
0.1.1 2020 年 5 月 7 日

#159 in 命令行界面

Download history 99825/week @ 2024-04-08 95830/week @ 2024-04-15 112715/week @ 2024-04-22 109045/week @ 2024-04-29 108675/week @ 2024-05-06 114077/week @ 2024-05-13 117426/week @ 2024-05-20 102495/week @ 2024-05-27 111633/week @ 2024-06-03 108181/week @ 2024-06-10 101905/week @ 2024-06-17 104846/week @ 2024-06-24 91695/week @ 2024-07-01 95803/week @ 2024-07-08 93763/week @ 2024-07-15 96086/week @ 2024-07-22

382,492 个月下载量
用于 12 个 crate (2 直接)

MIT/Apache

190KB
236 代码行数(不含注释)

color-spantrace

Build Status Latest Version Rust Documentation

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

设置

将以下内容添加到您的 Cargo.toml

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

使用 ErrorLayer 设置跟踪订阅者

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

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

创建跨度并进入它们

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

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

最后,为 SpanTrace 着色

use tracing_error::SpanTrace;

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

示例

此示例取自 examples/color-spantrace-usage.rs

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

#[instrument]
fn main() {
    Registry::default().with(ErrorLayer::default()).init();

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

#[instrument]
fn one(i: u32) -> SpanTrace {
    two()
}

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

这将产生以下输出

最小格式

minimal format

完整格式

Full format

许可证

许可协议为 Apache License, Version 2.0 或 MIT license,任选其一。
除非您明确说明,否则您提交给本仓库存档的任何有意贡献,根据 Apache-2.0 许可证定义,应双重许可如上,不附加任何额外条款或条件。

依赖项

~1.5MB
~26K SLoC