#backtrace #stack-trace #pretty #color

comfy-color-backtrace

Comfy 对 Colorful panic backtraces 的分支

1 个不稳定版本

0.6.0 2023年9月24日

#178 in 值格式化

Download history 90/week @ 2024-03-15 92/week @ 2024-03-22 87/week @ 2024-03-29 73/week @ 2024-04-05 105/week @ 2024-04-12 117/week @ 2024-04-19 123/week @ 2024-04-26 152/week @ 2024-05-03 118/week @ 2024-05-10 148/week @ 2024-05-17 110/week @ 2024-05-24 84/week @ 2024-05-31 57/week @ 2024-06-07 80/week @ 2024-06-14 82/week @ 2024-06-21 37/week @ 2024-06-28

269 每月下载量
4 个库中使用 (通过 comfy-core)

MIT/Apache

34KB
571

color-backtrace

Crates.io docs.rs MIT licensed Apache 2.0 licensed

一个 Rust 库,通过优雅地着色和打印相关的源代码片段,使 panic 变得不那么痛苦。

[dependencies]
color-backtrace = { version = "0.5" }

要启用它,只需在您的应用程序初始化代码中放置此代码即可

color_backtrace::install();

如果您想自定义一些设置,您可以这样做

use color_backtrace::{default_output_stream, BacktracePrinter};
BacktracePrinter::new().message("Custom message!").install(default_output_stream());

特性

  • 着色回溯,使其更容易阅读
  • 如果在磁盘上找到源文件,则显示源代码片段
  • 以不同的颜色打印应用程序代码和依赖项的帧
  • 在 panic 已经开始后隐藏所有帧
  • 隐藏语言运行时初始化帧

减少传递依赖

为了减少传递依赖,您可以通过在 Cargo.toml 依赖项条目中添加 default-features = false 子句来禁用默认启用的 gimli-symbolize 功能,例如。

[dependencies]
color-backtrace = { version = "0.5", default-features = false }

这将减少依赖性从 ~50 → ~10。然而,您将付出在 macOS 和 Linux 上 不准确的源信息 的代价。

在测试中的使用

不幸的是,目前 Rust 不支持在测试开始之前定义自定义的初始化函数。由于即使在将其包装成函数的情况下,在每次测试中初始化 color-backtrace 也是一件麻烦事,因此我建议使用 ctor 库来完成此操作。

最好在您的库的主模块中某个地方放置以下代码

#[cfg(test)]
mod tests {
    use ctor::ctor;

    #[ctor]
    fn init_color_backtrace() {
        color_backtrace::install();
    }
}

您也可以在 #[cfg(test)] 部分,在这种情况下,panic 处理程序将安装到测试和常规运行中。

截图

Screenshot

依赖项

~3–11MB
~122K SLoC