tracing-unwrap
This crate provides .unwrap_or_log()
and .expect_or_log()
methods on Result
and Option
types that log failed unwraps to a tracing::Subscriber
. This is useful when, for example, you are logging to syslog or a database, and you want your unwrap failures to show up there instead of being printed to stderr
.
Its API aims to mirror Rust's std
— see all the supported methods below. Failed unwraps are logged at a level of ERROR
.
Usage
Add the following to your Cargo.toml
:
= "0.9"
Next, bring the ResultExt
and/or OptionExt
traits into scope, and make use of the new logging methods.
use ResultExt;
fmt.init;
let not_great: = Result Err;
// Logs the failed unwrap and panics
not_great.unwrap_or_log;
Methods
†: unstable in std
Features
panic-quiet
: causes failed unwraps to panic with an empty message. This feature is enabled by default — if you'd like the unwrap error message to also show in the panic message, disable default features in yourCargo.toml
as follows:tracing-unwrap = { version = "0.9", default-features = false }