#log-structured #structured #persistent #logging #log #logger

structured_persistent_logger

支持持久化字段的“日志”记录器

1 个不稳定版本

0.1.0 2023年11月18日

#742并发

MIT 许可证

7KB
73

结构化持久化日志器

structured_persistent_logger 是一个 Rust 包,提供了一个与标准 log 包兼容的结构化日志解决方案。它具有持久化日志功能,允许保留和结构化格式化日志记录。

特性

  • 与标准 log 包的集成。
  • 支持 JSON 格式的结构化日志。
  • 在整个应用程序生命周期中提供持久化日志功能。
  • 线程安全的日志记录,支持多线程环境。

安装

structured_persistent_logger 添加到您的 Cargo.toml

[dependencies]
structured_persistent_logger = "0.1.0"
log = "0.4.0"

使用

要使用 structured_persistent_logger,请在应用程序开始时进行初始化

use structured_persistent_logger::StructuredPersistentLogger;

fn main() {
    StructuredPersistentLogger::init();
    add_persistent_logs! {
        "key1" => json!("value1"),
        "key2" => json!({"nested": "structure"})
    };
    log::info!("This is an info message");
    // output:
    // {
    //    "key1": "value1",
    //    "key2": { "nested": "structure" },
    //    "message": "This is an info message",
    //    "level": "INFO"
    // }
}

添加持久化日志

您可以为每个日志消息添加持久化日志

use structured_persistent_logger::add_persistent_logs;
use serde_json::json;

fn some_function() {
    add_persistent_logs! {
        "key1" => json!("value1"),
        "key2" => json!(123)
    };
}

配置

可以根据需要调整记录器的行为,例如设置日志级别或自定义日志条目的格式。

贡献

我们欢迎对 structured_persistent_logger 的贡献!请随时提交拉取请求或打开问题来改进库。

许可证

此包根据 MIT 许可证 许可。

依赖项

~1.4–2MB
~36K SLoC