
use std::sync::Arc;
use std::thread;
use std::time::{Duration};

use tokio::runtime::Runtime;

use syslog_rs::sy_async::{Syslog};
use syslog_rs::{LogStat, LogFacility, Priority};


lazy_static! {
    static ref SYSLOG: Arc<Syslog> = {
        Runtime::new().unwrap().block_on(async {
            Arc::new(
                Syslog::openlog(
                    Some("example"), 
                    LogStat::LOG_CONS | LogStat::LOG_NDELAY | LogStat::LOG_PID, 
                    LogFacility::LOG_DAEMON
                ).await.unwrap()
            )
        })
    };
}

macro_rules! logdebug 
{
    ($($arg:tt)*) => (
        SYSLOG.syslog(Priority::LOG_DEBUG, format!($($arg)*)).await
    )
}



pub async fn main1()
{
    logdebug!("test message!");

    thread::sleep(Duration::from_micros(10));

    return;
}
