kapiti 0.0.3

The Kapiti DNS Server
Documentation
use std::str::FromStr;

use tracing_subscriber::{filter::Directive, EnvFilter};

pub fn init_logging() {
    let mut filter_layer = EnvFilter::try_from_env("LOG_LEVEL")
        .or_else(|_| EnvFilter::try_new("info"))
        .expect("Failed to initialize filter layer");

    // Set hyper and h2 logs to INFO level.
    // This reduces debug-level noise around HTTP decoding and session status etc.
    // Ideally we'd keep the noise when level is TRACE, but the tracing API makes it hard to check.
    filter_layer = filter_layer
        .add_directive(Directive::from_str("hyper=info").expect("failed to parse hyper directive"))
        .add_directive(Directive::from_str("h2=info").expect("failed to parse h2 directive"));

    tracing::subscriber::set_global_default(
        tracing_subscriber::fmt()
            .with_writer(std::io::stderr)
            .with_env_filter(filter_layer)
            .finish(),
    )
    .expect("Failed to set default subscriber");
}