leftwm 0.4.1

A window manager for Adventurers
Documentation
use tracing::{metadata::LevelFilter, Subscriber};
use tracing_subscriber::{layer::SubscriberExt, EnvFilter};

#[cfg(feature = "journald-log")]
mod journald;

#[cfg(feature = "file-log")]
mod file;

#[cfg(feature = "sys-log")]
mod sys;

pub fn setup_logging() {
    let subscribers = get_subscribers();

    tracing::subscriber::set_global_default(subscribers)
        .expect("Couldn't setup global subscriber (logger)");
}

#[allow(clippy::let_and_return)]
fn get_subscribers() -> impl Subscriber {
    let env_filter = EnvFilter::builder()
        .with_default_directive(LevelFilter::DEBUG.into())
        .from_env_lossy();

    let subscriber = tracing_subscriber::registry().with(env_filter);

    #[cfg(feature = "journald-log")]
    let subscriber = journald::add_layer(subscriber);

    #[cfg(feature = "file-log")]
    let subscriber = file::add_layer(subscriber);

    #[cfg(feature = "sys-log")]
    let subscriber = sys::add_layer(subscriber);

    subscriber
}