10个版本
0.9.2 | 2020年8月27日 |
---|---|
0.9.1 | 2020年4月8日 |
0.8.0 | 2020年4月8日 |
0.1.5 | 2020年4月5日 |
657 在 调试
每月下载 56 次
25KB
277 代码行
slog-unwrap
该crate为.unwrap_or_log()
和.expect_or_log()
方法在Result
和Option
类型上提供了扩展,这些方法将失败的解包日志记录到slog::Logger
。这在例如你有一个syslog drain或数据库drain,而你希望unwrap失败显示在那里而不是打印到stderr
时非常有用。
它的API旨在与Rust的std
保持一致——请参阅以下所有支持的方法。失败的解包以Critical
级别进行记录。
用法
将以下内容添加到你的Cargo.toml
slog-unwrap = "0.9"
接下来,引入ResultExt
和/或OptionExt
特质,并使用新的日志方法。
use slog_unwrap::ResultExt;
let logger = slog::Logger::root(slog::Discard, slog::o!());
let not_great: Result<(), _> = Result::Err("not terrible");
// Logs the failed unwrap to `logger` and panics
not_great.unwrap_or_log(&logger);
方法
†: 在 std
中不稳定
注意:启用 scope
功能会将所有方法的 &log
参数移除。
特性
panic-quiet
:导致失败的展开会使用空消息进行 panic。
此功能默认启用——如果您希望展开错误消息也显示在 panic 消息中,请在您的Cargo.toml
中禁用默认功能,如下所示
slog-unwrap= {version= "0.9",default-features= false }
scope
:添加了对slog-scope
的支持,它消除了在各个方法中传递slog::Logger
的需求。
替代方案
参见 slog-unwraps,另一个具有类似特性集的 crate。
依赖
~190KB