artifact_app/
logging.rs

1use std::result;
2use log;
3
4use fern;
5
6pub fn init_logger(
7    quiet: bool,
8    verbosity: u8,
9    stderr: bool,
10) -> result::Result<(), log::SetLoggerError> {
11    let level = if quiet {
12        log::LogLevelFilter::Off
13    } else {
14        match verbosity {
15            0 => log::LogLevelFilter::Warn,
16            1 => log::LogLevelFilter::Info,
17            2 => log::LogLevelFilter::Debug,
18            3 => log::LogLevelFilter::Trace,
19            _ => unreachable!(),
20        }
21    };
22    let output = if stderr {
23        fern::Output::stderr("\n")
24    } else {
25        fern::Output::stdout("\n")
26    };
27
28    fern::Dispatch::new()
29        .format(|out, msg, record| {
30            out.finish(format_args!("{}: {}", record.level(), msg))
31        })
32        .level(level)
33        .chain(output)
34        .apply()
35}
36
37#[cfg(test)]
38pub fn init_logger_test() {
39    match init_logger(false, 3, false) {
40        Ok(_) => {}
41        Err(_) => {}
42    }
43}