itrace 0.1.1

Structured, columnar tracing for Rust applications
Documentation
// examples/basic.rs
//
// Per eseguire:
//   mise run example
// oppure:
//   cargo run --example basic

use anyhow::Result;

fn main() -> Result<()> {
    itrace::builder()
        .tracer("basic")
        .from_env()
        .init()?;

    // TRACE
    tracing::trace!(
        app = "myapp",
        zone = "eu-west-1",
        node = "node-01",
        "Entering request handler"
    );
    tracing::trace!(
        app = "myapp",
        zone = "eu-west-1",
        node = "node-02",
        "Checking cache entry"
    );

    // DEBUG
    tracing::debug!(
        app = "myapp",
        zone = "eu-west-1",
        node = "node-01",
        "Connected to database"
    );
    tracing::debug!(
        app = "myapp",
        zone = "ap-southeast-1",
        node = "node-03",
        latency_ms = 42,        // field non in colonne → appeso al messaggio
        "Query executed"
    );

    // INFO
    tracing::info!(
        app = "myapp",
        zone = "eu-west-1",
        node = "node-01",
        "Server started"
    );
    tracing::info!(
        app = "myapp",
        zone = "us-east-1",
        node = "node-05",
        "New connection accepted"
    );
    tracing::info!(
        app = "myapp",
        zone = "eu-west-1",
        node = "node-01",
        connections = 128,      // field non in colonne → appeso al messaggio
        "Connection pool ready"
    );

    // WARN
    tracing::warn!(
        app = "myapp",
        zone = "eu-west-1",
        node = "node-01",
        "Configurazione parziale: usando valori di default"
    );
    tracing::warn!(
        app = "myapp",
        zone = "ap-southeast-1",
        node = "node-03",
        retry = 2,              // field non in colonne → appeso al messaggio
        "Upstream lento, ritento"
    );

    // ERROR
    tracing::error!(
        app = "myapp",
        zone = "eu-west-1",
        node = "node-01",
        request_id = "abc-123", // field non in colonne → appeso al messaggio
        "Errore critico: connessione persa"
    );
    tracing::error!(
        app = "myapp",
        zone = "us-east-1",
        node = "node-05",
        "Timeout su chiamata esterna"
    );

    Ok(())
}