#跟踪 #日志跟踪 #JSON日志 #扁平化 #平坦 #时间戳 #solink

solink-tracing-flat-json

在跟踪中记录扁平化JSON

1个稳定版本

1.0.0 2024年6月19日

#329调试

Download history 126/week @ 2024-06-15 26/week @ 2024-06-22 23/week @ 2024-06-29 29/week @ 2024-07-06 12/week @ 2024-07-13 5/week @ 2024-07-20 26/week @ 2024-07-27

每月 77 次下载

MIT 许可证

8KB
146 代码行

solink-tracing-flat-json

这是一个开源库,可以与 tracing 一起使用,以记录扁平化JSON

    use solink_tracing_flat_json::SolinkJsonFormat;

    let log_to_file = tracing_subscriber::fmt::layer()
        .event_format(
            SolinkJsonFormat::new()
        )
        .fmt_fields(JsonFields::default());
    tracing_subscriber::registry().with(log_to_file).init();

这将序列化时间戳、事件中的所有变量、当前span的名称以及当前和所有父span中的所有变量。

例如

#[tokio::main(flavor = "current_thread")]
async fn main() {
    a(42).await;
}

#[instrument]
async fn a(x: u64) {
    b(x).await;
}

#[instrument]
async fn b(y: u64) {
    info!(z = 94, "Hello from b")
}

将产生类似以下输出

{"timestamp":"2024-06-18T21:17:44.902137000Z","level":"INFO","message":"Hello from b","z":94,"span":"b","y":42,"x":42}

依赖项

~4–5.5MB
~96K SLoC