#logstash #logging-tracing #logging #tracing

tracing-logstash

输出logstash格式事件的最低限度库

9个版本 (破坏性更新)

0.7.0 2024年1月8日
0.6.4 2023年11月15日
0.6.1 2023年9月19日
0.5.0 2023年5月6日
0.1.0 2021年2月5日

#199调试

Download history 100/week @ 2024-04-14 61/week @ 2024-04-21 27/week @ 2024-04-28 27/week @ 2024-05-12 66/week @ 2024-05-19 94/week @ 2024-05-26 20/week @ 2024-06-02 10/week @ 2024-06-09 24/week @ 2024-06-16 6/week @ 2024-06-23 34/week @ 2024-06-30 55/week @ 2024-07-07 1/week @ 2024-07-14 8/week @ 2024-07-21 41/week @ 2024-07-28

每月106次下载

MIT 许可证

36KB
934

tracing-logstash

我能够以绝对最小量的代码编写https://github.com/logstash/logstash-logback-encoder#standard-fields格式的跟踪消息/日志。

目前为在单个应用中使用单个日志消费者而构建。

安装

您可以将此库包含在Cargo.toml文件中

[dependencies]
tracing-logstash = "0.6.1"

用法

fn main() {
    let logger = tracing_logstash::Layer::default()
        .event_format(tracing_logstash::logstash::LogstashFormat::default()
            .with_constants(vec![
                ("service.name", "tracing-logstash".to_owned()),
            ])
        );

    let env_filter = EnvFilter::try_from_default_env()
        .or_else(|_| EnvFilter::try_new("info"))
        .unwrap();

    let collector = Registry::default().with(logger).with(env_filter);

    tracing::subscriber::set_global_default(collector).unwrap();
    
    tracing::info!("Hello, world!");
}

Logstash格式参考

https://github.com/logstash/logstash-logback-encoder#standard-fields

示例输出(来自示例应用)

{
  "@version": "1",
  "@timestamp": "2023-09-14T09:34:17.233512Z",
  "thread_name": "tokio-runtime-worker",
  "logger_name": "hyper",
  "level": "INFO",
  "level_value": 5,
  "message": "tracing crate macro",
  "some_tag": 43,
  "service.name": "tracing-logstash"
}

许可证

本库根据MIT许可证分发。有关详细信息,请参阅LICENSE文件。

依赖项

~2–2.7MB
~48K SLoC