30 个版本
新 0.11.0-alpha.9 | 2024 年 8 月 21 日 |
---|---|
0.11.0-alpha.7 | 2024 年 7 月 31 日 |
0.10.0 | 2016 年 7 月 4 日 |
0.3.2 | 2016 年 3 月 24 日 |
0.1.0 | 2015 年 8 月 8 日 |
#71 in 调试
234 每月下载量
用于 7 crates
395KB
9K SLoC
emit
开发者优先的诊断
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}!");
}
当前状态
这是 alpha 级软件。它实现了完整的框架,但几乎没有测试,需要更多的文档。
入门
查看 examples
目录和 emit
文档,以开始使用 emit
。
我可以将我的诊断发送到哪里?
emit
生成的诊断将发送到 发射器。此存储库当前实现了以下发射器
emit_term
用于将可读输出写入控制台。emit_file
用于将 JSON 或其他机器可读格式写入滚动文件。emit_otlp
用于向兼容 OpenTelemetry 的收集器发送诊断信息。emit_opentelemetry
用于将emit
集成到使用 OpenTelemetry SDK 进行其诊断的应用程序中。
依赖项
~0.5–1.3MB
~29K SLoC