lezeh-common 0.1.0

Common functionalities for lezeh. See https://github.com/sendyhalim/lezeh for details.
Documentation
use slog::*;

static mut LOGGER: Option<Logger> = None;

pub fn get() -> &'static Logger {
  unsafe {
    if LOGGER.is_some() {
      return LOGGER.as_ref().unwrap();
    }

    env_logger::init();

    let log_decorator = slog_term::TermDecorator::new().build();
    let log_drain = slog_term::CompactFormat::new(log_decorator).build().fuse();
    let rust_log_val = std::env::var("RUST_LOG").unwrap_or("info".to_owned());
    let log_drain = slog_envlogger::LogBuilder::new(log_drain)
      .parse(&rust_log_val)
      .build();

    let log_drain = slog_async::Async::new(log_drain).build().fuse();

    LOGGER = Some(slog::Logger::root(log_drain, o!()));

    return LOGGER.as_ref().unwrap();
  }
}