diff --git a/content/docs/sentry.md b/content/docs/sentry.md index a93c2d4..99f4384 100644 --- a/content/docs/sentry.md +++ b/content/docs/sentry.md @@ -20,47 +20,16 @@ initialized and configured and the [sentry-actix middleware](https://crates.io/c needs to be added. Additionally it makes sense to also register the panic handler to be informed about hard panics. -```rust -extern crate sentry; -extern crate sentry_actix; - -use sentry_actix::SentryMiddleware; - -use std::env; - -fn main() { - sentry::init("SENTRY_DSN_GOES_HERE"); - env::set_var("RUST_BACKTRACE", "1"); - sentry::integrations::panic::register_panic_handler(); - - let mut app = App::with_state(state) - .middleware(SentryMiddleware::new()) - // ... -} -``` +{{< include-example example="sentry" file="main.rs" section="middleware" >}} # Reusing the Hub If you use this integration the default sentry hub (`Hub::current()`) is typically the wrong one. To get the request specific one you need to use the `ActixWebHubExt` trait: -```rust -use sentry::{Hub, Level}; -use sentry_actix::ActixWebHubExt; - -let hub = Hub::from_request(req); -hub.capture_message("Something is not well", Level::Warning); -``` +{{< include-example example="sentry" file="main.rs" section="hub" >}} The hub can also be made current for the duration of a call. Then `Hub::current()` works correctly until the end of the `run` block. -```rust -use sentry::{Hub, Level}; -use sentry_actix::ActixWebHubExt; - -let hub = Hub::from_request(req); -Hub::run(hub, || { - sentry::capture_message("Something is not well", Level::Warning); -}); -``` +{{< include-example example="sentry" file="main.rs" section="hub2" >}} diff --git a/examples/Cargo.toml b/examples/Cargo.toml index d83abf1..75fe191 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -27,4 +27,5 @@ exclude = [ "http20", "databases", "og_databases", + "sentry", ] diff --git a/examples/sentry/Cargo.toml b/examples/sentry/Cargo.toml new file mode 100644 index 0000000..0044be4 --- /dev/null +++ b/examples/sentry/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "sentry" +version = "0.1.0" +authors = ["Cameron Dershem "] +edition = "2018" + +[dependencies] +actix-web = "1.0" +sentry-actix = "0.15" +sentry = "0.15" diff --git a/examples/sentry/src/main.rs b/examples/sentry/src/main.rs new file mode 100644 index 0000000..9246394 --- /dev/null +++ b/examples/sentry/src/main.rs @@ -0,0 +1,36 @@ +// +// use actix_web::{web, App, HttpResponse}; +// use sentry; +// use sentry_actix::SentryMiddleware; + +// use std::env; + +// fn main() { +// sentry::init("SENTRY_DSN_GOES_HERE"); +// env::set_var("RUST_BACKTRACE", "1"); +// sentry::integrations::panic::register_panic_handler(); + +// let mut app = App::new() +// // .data(state) +// .wrap(SentryMiddleware::new()) +// .route("/", web::get().to(|| HttpResponse::Ok())); +// } +// + +// +// use sentry::{Hub, Level}; +// use sentry_actix::ActixWebHubExt; + +// let hub = Hub::from_request(req); +// hub.capture_message("Something is not well", Level::Warning); +// // + +// // +// use sentry::{Hub, Level}; +// use sentry_actix::ActixWebHubExt; + +// let hub = Hub::from_request(req); +// Hub::run(hub, || { +// sentry::capture_message("Something is not well", Level::Warning); +// }); +//