#github #自动 #崩溃 #报告 #系统 #panic 处理器 #追加

crashreport

适用于任何 Rust 包的自动 GitHub 崩溃报告系统

2 个稳定版本

1.0.1 2022 年 4 月 14 日

#1501 in Rust 模式

每月 43 次下载

GPL-3.0 许可协议

52KB
241

Rust 自动崩溃报告

Crates.io Docs.rs Build Clippy Audit

crashreport 是一个 设置与忘记 的库,它会将一个按钮添加到您应用程序的 panic 消息中,允许用户快速向您报告基本的诊断信息。

使用方法

首先,此库依赖于您在 Cargo.toml 文件中设置 repository 键。当使用 crashreport 时,您的 Cargo.toml 可能看起来像这样

[package]
name = "my-awesome-crate"
version = "0.1.0"
repository = "https://github.com/ewpratten/my-awesome-crate"

[dependencies]
crashreport = "^1.0.0"

# If you never want terminal colors, import the crate like this instead:
crashreport = { version = "^1.0.0", default-features = false }

在代码方面,只需使用我们的 crashreport! 宏在全局 panic 消息中添加按钮即可

#[macro_use]
extern crate crashreport;

pub fn main() {
    // The important bit :)
    crashreport!();

    // ... do stuff

    // Your panics are now a little fancier!
    panic!("This is a panic!");
}

关于内部结构的说明

crashreport 通过 追加 一个新函数到您现有的 panic 处理器的末尾来实现。不必担心,如果您想保留复杂的自定义处理器,可以继续使用。只需在调用 crashreport! 之前初始化它们即可。

Git 提供者解析

目前,我们支持以下托管 Git 服务

  • GitHub
  • GitLab

如果您使用的是这些服务的自托管版本,crashreport不会 自动检测。相反,您可以通过启用以下功能之一来强制重写提供者解析

  • assume_github
  • assume_gitlab

启用这些功能中的多个将导致第一个被使用

终端 URL

尽可能的情况下,crashreport 将尝试在您的终端中创建可点击的按钮。决定终端是否支持此功能的任务由 supports-hyperlinks 库执行。如果出现问题,请在那里打开一个 issue 以添加支持。

最坏的情况下,您可以通过设置环境变量 FORCE_HYPERLINK=0 来强制禁用按钮创建(回退到打印 URL)。

依赖项

~1–11MB
~102K SLoC