1 unstable release

0.2.0 Mar 16, 2022

#69 in #backtrace

MIT/Apache

11KB
142 lines

Backtrace error submission crate

Installation

[dependencies]
backtraceio = "0.1"

Usage

Global error handler

Pass your custom token and upload url from your Backtrace account and a report modification closure/function to the backtraceio::register_error_handler function.

backtraceio::register_error_handler(
    "https://UNIVERSE.sp.backtrace.io:6098",
    "YOURTOKEN",
    closure
);

Report modification function

The error handler will pass the Report and std::panic::PanicInfo objects back to the user, in case there are additional attributes/annotations to be defined (described more in detail here). It should accept &mut Report, &PanicInfo, making any changes desired to the report.

Example

use backtraceio::Report;

fn main() {
    backtraceio::register_error_handler(
        "https://UNIVERSE.sp.backtrace.io:6098",
        "YOUR_TOKEN",
        |r: &mut Report, _| {
            let cpus = num_cpus::get();
            let cpus = cpus.to_string();
            r.attributes.insert(String::from("cpu.cores"), cpus);
        },
    );

    println!("Hello, world!");
    panic!("{:?}", 69);
}

Dependencies

~6–18MB
~271K SLoC