Crate emit_term

Source
Expand description

Emit diagnostic events to the console.

This library implements a text-based format that’s intended for direct end-user consumption, such as in interactive applications.

§Getting started

Add emit and emit_term to your Cargo.toml:

[dependencies.emit]
version = "1.5.0"

[dependencies.emit_term]
version = "1.5.0"

Initialize emit using emit_term:

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

    // Your app code goes here

    rt.blocking_flush(std::time::Duration::from_secs(30));
}

emit_term uses a format optimized for human legibility, not for machine processing. You may also want to emit diagnostics to another location, such as OTLP through emit_otlp or a rolling file through emit_file for processing. You can use emit::Setup::and_emit_to to combine multiple emitters:

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

    // Your app code goes here

    rt.blocking_flush(std::time::Duration::from_secs(30));
}

§Configuration

emit_term has a fixed format, but can be configured to force or disable color output instead of detect it.

To disable colors, call Stdout::colored with the value false:

fn main() {
    let rt = emit::setup()
        // Disable colors
        .emit_to(emit_term::stdout().colored(false))
        .init();

    // Your app code goes here

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

To force colors, call Stdout::colored with the value true:

fn main() {
    let rt = emit::setup()
        // Force colors
        .emit_to(emit_term::stdout().colored(true))
        .init();

    // Your app code goes here

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

Structs§

Stderr
An emitter that writes to stderr.
Stdout
An emitter that writes to stdout.

Functions§

stderr
Get an emitter that writes to stderr.
stdout
Get an emitter that writes to stdout.