multi-logger 0.0.1

Rusty Horde Loggers
use log::{
    self,
    LogRecord,
    LogLevel,
    LogLevelFilter,
    LogMetadata,
    SetLoggerError
};

pub struct StdoutLogger;

impl log::Log for StdoutLogger {
    fn enabled(&self, metadata: &LogMetadata) -> bool {
        metadata.level() <= LogLevel::Warn
    }

    fn log(&self, record: &LogRecord) {
        if self.enabled(record.metadata()) {
            println!("{}", record.args());
        }
    }
}

pub fn init_stdout_logger(level: LogLevelFilter) -> Result<(), SetLoggerError> {
    log::set_logger(|max_log_level| {
        max_log_level.set(level);
        Box::new(StdoutLogger)
    })
}