leftwm 0.5.4

A window manager for Adventurers
Documentation
use syslog_tracing::{Facility, Options, Syslog};
use tracing::Subscriber;
use tracing_subscriber::{layer::SubscriberExt, registry::LookupSpan};

const IDENTITY: &[u8] = b"leftwm\0";

pub fn add_layer<S>(subscriber: S) -> impl Subscriber + for<'span> LookupSpan<'span>
where
    S: Subscriber + for<'span> LookupSpan<'span>,
{
    let log_writer = get_log_writer();
    let layer = tracing_subscriber::fmt::layer().with_writer(log_writer);
    subscriber.with(layer)
}

fn get_log_writer() -> Syslog {
    let identity = std::ffi::CStr::from_bytes_with_nul(IDENTITY).unwrap();
    let options = Options::default();
    let facility = Facility::default();
    Syslog::new(identity, options, facility).unwrap()
}