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 = "0.11.4"

[dependencies.emit_term]
version = "0.11.4"

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§

  • An emitter that writes to stdout.

Functions§

  • Get an emitter that writes to stdout.