1 个不稳定版本
0.1.0 | 2021年2月25日 |
---|
#1320 在 文件系统
29KB
581 行(不包括注释)
fs-tracing
fs-tracing 是 std::fs 的直接替代品,通过 tracing 提供辅助信息(如路径)以在错误中。
用法
您需要安装 tracing_error::ErrorLayer
来捕获错误上下文。例如,以下函数安装 ErrorLayer
。
// https://docs.rs/tracing-error/0.1.2/tracing_error/index.html
pub fn install() {
use tracing_error::ErrorLayer;
use tracing_subscriber::prelude::*;
let subscriber = tracing_subscriber::Registry::default().with(ErrorLayer::default());
tracing::subscriber::set_global_default(subscriber).unwrap();
}
更多信息,请访问 https://docs.rs/tracing-subscriber/0.2.16/tracing_subscriber/registry/index.html.
然后,您可以在代码中将 std::fs 替换为 fs_tracing,并得到漂亮的错误信息。
错误
fs-tracing 在错误时返回 std::io::Error
以保持兼容性,尽管返回的错误包含上下文信息,例如操作的类型和传递给参数的值。
例如,当您尝试打开一个不存在的文件时,fs-tracing 返回的错误信息将打印出操作名称(fs_tracing::read
)和有问题的路径(/not_exist
)
No such file or directory (os error 2)
Trace:
0: fs_tracing::read
with path="/not_exist"
at src/lib.rs:652
许可协议
许可协议为以下之一
- Apache 许可协议 2.0 版(LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议(LICENSE-MIT 或 https://opensource.org/licenses/MIT)
您可选。
贡献
除非您明确声明,否则任何有意提交给作品并包含在 Apache-2.0 许可协议定义中的贡献,都将如上所述双重许可,不附加任何额外的条款或条件。
依赖项
~1.5MB
~25K SLoC