24 releases
new 0.11.0-alpha.3 | Jun 8, 2024 |
---|---|
0.10.0 | Jul 4, 2016 |
0.3.2 | Mar 24, 2016 |
0.1.0 | Aug 8, 2015 |
#60 in Debugging
29 downloads per month
Used in 7 crates
305KB
6K
SLoC
emit
Structured diagnostics for Rust applications
emit
is a structured logging framework for manually instrumenting Rust applications with an expressive syntax inspired by Message Templates.
emit
represents all diagnostics as events; a combination of timestamp or timespan, template, and properties. Traditional log records, spans in a distributed trace, and metric samples are all represented as events. Having a unified model of all these signals means you can always capture your diagnostics in one way or another.
[dependencies.emit]
version = "0.11.0-alpha.3"
[dependencies.emit_term]
version = "0.11.0-alpha.3"
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}!");
}
Current status
This is alpha-level software. It implements a complete framework but has almost no tests and needs a lot more documentation.
Getting started
See the examples
directory and emit
documentation to get started with emit
.
Dependencies
~0.6–1.3MB
~30K SLoC