Crates.io | sentry |
lib.rs | sentry |
version | 0.35.0 |
source | src |
created_at | 2016-05-20 17:24:17.084103 |
updated_at | 2024-11-29 09:30:09.987654 |
description | Sentry (getsentry.com) client for rust ;) |
homepage | https://sentry.io/welcome/ |
repository | https://github.com/getsentry/sentry-rust |
max_upload_size | |
id | 5120 |
size | 240,391 |
This crate provides support for logging events and errors / panics to the Sentry error logging service. It integrates with the standard panic system in Rust as well as a few popular error handling setups.
The most convenient way to use this library is via the sentry::init
function,
which starts a sentry client with a default set of integrations, and binds
it to the current Hub
. More Information on how to use Sentry in parallel,
concurrent and async scenarios can be found on the Hub
docs as well.
The sentry::init
function returns a guard that when dropped will flush Events that were not
yet sent to the sentry service. It has a two second deadline for this so shutdown of
applications might slightly delay as a result of this. Keep the guard around or sending events
will not work.
let _guard = sentry::init("https://key@sentry.io/42");
sentry::capture_message("Hello World!", sentry::Level::Info);
// when the guard goes out of scope here, the client will wait up to two
// seconds to send remaining events to the service.
More complex examples on how to use sentry can also be found in examples. Extended instructions may also be found on Sentry itself.
What makes this crate useful are its various integrations. Some of them are enabled by default; See Features. Uncommon integrations or integrations for deprecated parts of the ecosystem require a feature flag. For available integrations and how to use them, see integrations and apply_defaults.
This crate comes fully-featured. If the goal is to instrument libraries for usage
with sentry, or to extend sentry with a custom Integration
or a Transport
,
one should use the sentry-core
crate instead.
Additional functionality and integrations are enabled via feature flags. Some features require extra setup to function properly.
Feature | Default | Is Integration | Deprecated | Additional notes |
---|---|---|---|---|
backtrace |
✅ | 🔌 | ||
contexts |
✅ | 🔌 | ||
panic |
✅ | 🔌 | ||
transport |
✅ | |||
anyhow |
🔌 | |||
test |
||||
debug-images |
✅ | 🔌 | ||
log |
🔌 | Requires extra setup; See sentry-log 's documentation. |
||
debug-logs |
❗ | Requires extra setup; See sentry-log 's documentation. |
||
slog |
🔌 | Requires extra setup; See sentry-slog 's documentation. |
||
reqwest |
✅ | |||
native-tls |
✅ | reqwest must be enabled. |
||
rustls |
reqwest must be enabled. native-tls must be disabled via default-features = false . |
|||
curl |
||||
surf |
||||
tower |
🔌 | Requires extra setup; See sentry-tower 's documentation. |
||
ureq |
ureq transport support using rustls by default |
|||
ureq-native-tls |
backtrace
: Enables backtrace support.contexts
: Enables capturing device, OS, and Rust contexts.panic
: Enables support for capturing panics.transport
: Enables the default transport, which is currently reqwest
with native-tls
.debug-images
: Enables capturing metadata about the loaded shared libraries.anyhow
: Enables support for the anyhow
crate.test
: Enables testing support.log
: Enables support for the log
crate.slog
: Enables support for the slog
crate.debug-logs
: Deprecated. Uses the log
crate for internal logging.reqwest
: Default. Enables the reqwest
transport.native-tls
: Default. Uses the native-tls
crate. This only affects the reqwest
transport.rustls
: Enables rustls
support for reqwest
. Please note that native-tls
is a default
feature, and default-features = false
must be set to completely disable building native-tls
dependencies.curl
: Enables the curl
transport.surf
: Enables the surf
transport.ureq
: Enables the ureq
transport using rustls
.ureq-native-tls
: Enables the ureq
transport using native-tls
.tower
: Enables support for the tower
crate and those using it.License: Apache-2.0