1 个不稳定版本
0.6.0 | 2023年9月24日 |
---|
#178 in 值格式化
269 每月下载量
在 4 个库中使用 (通过 comfy-core)
34KB
571 行
color-backtrace
一个 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 处理程序将安装到测试和常规运行中。
截图
依赖项
~3–11MB
~122K SLoC