3 个不稳定版本
0.2.0 | 2019 年 10 月 12 日 |
---|---|
0.1.1 | 2018 年 10 月 22 日 |
0.1.0 | 2018 年 2 月 14 日 |
在 调试 中排名第 574
每月下载量 30,720
在 6 个 Crates 中使用 (4 个直接使用)
14KB
132 行
Slog Derives
用于与 slog 日志一起使用的自定义 derive。
KV
Derive
有时你希望在应用程序中记录结构体的内容,例如在刚刚开始时记录配置详细信息以进行调试。通常你需要做些像这样的事情
#[macro_use]
extern crate slog;
use std::path::PathBuf;
struct Config {
width: f64,
height: f64,
url: String,
}
let cfg = Config { ... };
debug!(logger, "Loaded Config";
"width" => cfg.width,
"height" => cfg.height,
"url" => cfg.url);
# }
这就是 KV
trait 发挥作用的地方。实现它让你可以以键值对的形式记录类型,将之前的日志语句转换为类似以下内容
debug!(logger, "Loaded Config"; cfg);
此 crate 提供了一个自定义 derive,它将为你实现 KV
。它将遍历你的 struct
中的每个字段,并对每个字段调用 Value::serialize()
。你还可以使用 #[slog]]
属性来跳过特定字段。
#[derive(KV)]
pub struct Config {
width: f64,
height: f64,
#[slog(skip)]
url: String,
}
许可证
许可协议为以下之一
- Apache 许可协议第 2 版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由你选择。
贡献
除非您明确说明,否则根据Apache-2.0许可证定义,您有意提交给作品的所有贡献,应如上所述双重授权,不附加任何额外条款或条件。
依赖关系
~1.5MB
~32K SLoC