#logging #log-structured #json-log #log #logger #format-file #structured-log

structured-logger

为 log crate 实现的日志记录器,可以同步或异步地以 JSON、CBOR 或其他格式记录结构化值到文件、stderr、stdout 或其他目的地。

16 个版本 (4 个稳定版)

1.0.3 2023 年 8 月 13 日
1.0.2 2023 年 7 月 26 日
1.0.1 2023 年 6 月 20 日
0.5.3 2023 年 4 月 3 日
0.5.2 2023 年 3 月 30 日

#109调试 中排名

Download history 1554/week @ 2024-04-21 1745/week @ 2024-04-28 1502/week @ 2024-05-05 1697/week @ 2024-05-12 1178/week @ 2024-05-19 1459/week @ 2024-05-26 1290/week @ 2024-06-02 1236/week @ 2024-06-09 1395/week @ 2024-06-16 1462/week @ 2024-06-23 1071/week @ 2024-06-30 1217/week @ 2024-07-07 1336/week @ 2024-07-14 1689/week @ 2024-07-21 1603/week @ 2024-07-28 1247/week @ 2024-08-04

每月下载量 5,987
9 代码包 (8 个直接) 中使用

MIT/Apache

27KB
399

structured-logger

License Crates.io Codecov CI Docs.rs Latest Version

为 log crate 实现的日志记录器,可以同步或异步地以 JSON、CBOR 或其他格式记录结构化值到文件、stderr、stdout 或其他目的地。

它受到了 std-logger 的启发。

使用方法

请参阅示例和 API 文档 以获取更多信息。

示例

简单示例

use serde::Serialize;
use structured_logger::{async_json::new_writer, unix_ms, Builder};

#[tokio::main]
async fn main() {
    // Initialize the logger.
    Builder::with_level("info")
        .with_target_writer("*", new_writer(tokio::io::stdout()))
        .init();

    let kv = ContextLog {
        uid: "user123".to_string(),
        action: "upate_book".to_string(),
    };

    log::info!("hello world");
    // This log will be written to stdout:
    // {"level":"INFO","message":"hello world","target":"simple","timestamp":1679745592127}

    log::info!(target: "api",
        method = "GET",
        path = "/hello",
        status = 200_u16,
        start = unix_ms(),
        elapsed = 10_u64,
        kv = log::as_serde!(kv);
        "",
    );
    // This log will be written to stdout:
    // {"elapsed":10,"kv":{"uid":"user123","action":"upate_book"},"level":"INFO","message":"","method":"GET","path":"/hello","start":1679745592127,"status":200,"target":"api","timestamp":1679745592127}
}

#[derive(Serialize)]
struct ContextLog {
    uid: String,
    action: String,
}

许可证

版权所有 © 2023-present IO Rust

iorust/structured-logger 根据 Apache 许可证 2.0 版MIT 许可证 在您选择下授权。

依赖项

~3–11MB
~97K SLoC