7 releases (4 breaking)

0.5.0 Feb 10, 2025
0.4.0 Feb 10, 2025
0.3.0 Sep 3, 2024
0.2.3 Aug 31, 2024
0.1.0 May 16, 2024

#318 in Debugging

Download history 13/week @ 2024-10-30 26/week @ 2024-11-06 137/week @ 2024-11-13 228/week @ 2024-11-20 119/week @ 2024-11-27 13/week @ 2024-12-04 28/week @ 2024-12-11 27/week @ 2024-12-18 4/week @ 2024-12-25 41/week @ 2025-01-08 3/week @ 2025-01-15 6/week @ 2025-01-22 21/week @ 2025-01-29 226/week @ 2025-02-05 68/week @ 2025-02-12

322 downloads per month

MIT/Apache

27KB
397 lines

dontpanic

Send Rust panic!() and log::error!() messages to a backend server. See dontpanic-server

crates.io Docs License

Client library for Don't Panic Server. This crate registers a panic handler and send each panic from your application to a backend server. If configured, the latest log messages before each panic are sent as well. Supported logging facilities are log and tracing.

Example Usage

To use dontpanic, add this to your Cargo.toml:

[dependencies]
dontpanic = "*"
use anyhow::Result;

fn main() -> Result<()> {
    let client = dontpanic::builder("<PROJECT_API_KEY>")
        .environment("production")
        .version(env!("CARGO_PKG_VERSION"))
        .build()?

    let logger = env_logger::Builder::from_default_env().build();
    client.set_logger(logger)?;

    log::info!("What's happening here?");
    log::error!("Booooom");

    Option::<u32>::None.unwrap();

    Ok(())
}

<PROJECT_API_KEY> can be obtained from Don't Panic Server. For more examples see the Documentation.

Contributing

All commit messages must follow Conventional Commits specification.

License

Licensed under either of

at your option.

Dependencies

~5.5–7MB
~134K SLoC