11 个不稳定版本 (4 个破坏性更新)
0.5.0 | 2021 年 2 月 4 日 |
---|---|
0.4.1 | 2021 年 1 月 7 日 |
0.3.2 | 2020 年 3 月 16 日 |
0.2.2 | 2020 年 3 月 13 日 |
0.1.1 | 2020 年 3 月 12 日 |
#215 在 值格式化
每月 40 次下载
33KB
140 代码行
Rust 的键值日志记录器
用法
与其他日志记录器一样,kvlogger
必须在您的程序中初始化并注册为默认日志处理程序。然后,您可以使用常规的日志宏(不处理键值对),或者使用 kvlog!
宏并添加您的数据。
任何实现了 Display
的类型都可以用作值。
use std::error::Error;
use log::*;
use kvlogger::{KvLoggerBuilder, *};
fn main() -> Result<(), Box<dyn Error>> {
KvLoggerBuilder::default()
.set_level(Level::Debug)
.set_datetime_format("%Y-%m-%d")
.init()?;
info!("a simple message");
kvlog!(Info, "user tried to log in", {
"username" => "apognu",
"status" => 200
});
Ok(())
}
配置
kvlogger
在内部使用 env_logger 来进行过滤器选择。您有两种方法来配置所需日志级别
- 您可以使用
KvLoggerBuilder
的set_level(mut self, log::Level)
方法强制日志记录器在特定级别
KvLoggerBuilder::default()
.set_level(Level::Debug)
.init()?;
- 否则,您可以使用
RUST_LOG
环境变量来指定应考虑哪些日志。有关更多信息,请参阅 env_logger 文档。
$ RUST_LOG=rocket=error,main=info cargo run
- 如果使用
datetime
功能(见下文),您可以使用set_datetime_format(mut self, Into<String>
方法
KvLoggerBuilder::default()
.set_datetime_format("%Y-%m-%d")
.init()?;
可选功能
默认情况下,使用的时间是从 UNIX 纪元以来的毫秒数。您可以通过在 Cargo.toml
中启用 datetime
功能来选择更复杂(且可读性更强)的格式
[dependencies]
kvlogger = { version = "*", features = ["datetime"] }
示例
$ cargo run --example simple
$ cargo run --example simple --features datetime
$ RUST_LOG=simple=trace cargo run --example simple --features datetime
依赖项
~4–14MB
~139K SLoC