pipebase 0.2.0

A tokio based runtime library for data integration app
Documentation
use tracing_subscriber;

const FULL_FORMATTER: &str = "full";
const PRETTY_FORMATTER: &str = "pretty";
const JSON_FORMATTER: &str = "json";
const ENV_FORMATTER: &str = "PIPEBASE_LOG_FORMATTER";

fn init_with_full_formatter() {
    tracing_subscriber::fmt().init()
}

fn init_with_pretty_formatter() {
    tracing_subscriber::fmt().pretty().init()
}

fn init_with_json_formatter() {
    tracing_subscriber::fmt().json().flatten_event(true).init()
}

pub fn init_tracing_subscriber() {
    let formatter = std::env::var(ENV_FORMATTER).unwrap_or_else(|_| String::from(FULL_FORMATTER));
    match formatter.as_str() {
        FULL_FORMATTER => init_with_full_formatter(),
        PRETTY_FORMATTER => init_with_pretty_formatter(),
        JSON_FORMATTER => init_with_json_formatter(),
        _ => init_with_full_formatter(),
    }
}