30 个版本

0.11.0-alpha.9 2024 年 8 月 21 日
0.11.0-alpha.72024 年 7 月 31 日
0.10.0 2016 年 7 月 4 日
0.3.2 2016 年 3 月 24 日
0.1.0 2015 年 8 月 8 日

#71 in 调试

Download history 22/week @ 2024-05-06 4/week @ 2024-05-13 3/week @ 2024-05-20 259/week @ 2024-06-03 268/week @ 2024-06-10 44/week @ 2024-06-17 101/week @ 2024-06-24 76/week @ 2024-07-01 4/week @ 2024-07-08 3/week @ 2024-07-15 111/week @ 2024-07-29 2/week @ 2024-08-05 121/week @ 2024-08-12

234 每月下载量
用于 7 crates

MIT/Apache

395KB
9K SLoC

emit

all

当前文档

开发者优先的诊断

emit 是一个框架,它使用受 消息模板 启发的表达式语法手动对 Rust 应用程序进行仪器化。

emit 将所有诊断表示为 事件;结合时间戳或时间段、模板和属性。传统的日志记录、分布式跟踪中的跨度以及度量样本都表示为事件。具有所有这些信号的统一模型意味着你可以以某种方式捕获你的诊断。

[dependencies.emit]
version = "0.11.0-alpha.9"

[dependencies.emit_term]
version = "0.11.0-alpha.9"
use std::time::Duration;

fn main() {
    let rt = emit::setup()
        .emit_to(emit_term::stdout())
        .init();

    greet("Rust");

    rt.blocking_flush(Duration::from_secs(5));
}

#[emit::span("Greet {user}")]
fn greet(user: &str) {
    emit::info!("Hello, {user}!");
}

The output of running the above program

当前状态

这是 alpha 级软件。它实现了完整的框架,但几乎没有测试,需要更多的文档。

入门

查看 examples 目录和 emit 文档,以开始使用 emit

我可以将我的诊断发送到哪里?

emit 生成的诊断将发送到 发射器。此存储库当前实现了以下发射器

  • emit_term 用于将可读输出写入控制台。
  • emit_file 用于将 JSON 或其他机器可读格式写入滚动文件。
  • emit_otlp 用于向兼容 OpenTelemetry 的收集器发送诊断信息。
  • emit_opentelemetry 用于将 emit 集成到使用 OpenTelemetry SDK 进行其诊断的应用程序中。

依赖项

~0.5–1.3MB
~29K SLoC