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 次下载

MIT 许可证

33KB
140 代码行

Rust 的键值日志记录器

Banner

用法

与其他日志记录器一样,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 来进行过滤器选择。您有两种方法来配置所需日志级别

  • 您可以使用 KvLoggerBuilderset_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