Skip to main content

rusteron_code_gen/
test_logger.rs

1use log::{LevelFilter, Log, Metadata, Record};
2use std::sync::Once;
3
4struct StderrLogger;
5
6impl Log for StderrLogger {
7    fn enabled(&self, metadata: &Metadata<'_>) -> bool {
8        metadata.level() <= log::max_level()
9    }
10
11    fn log(&self, record: &Record<'_>) {
12        if self.enabled(record.metadata()) {
13            eprintln!("{} {}", record.level(), record.args());
14        }
15    }
16
17    fn flush(&self) {}
18}
19
20static LOGGER: StderrLogger = StderrLogger;
21static INIT: Once = Once::new();
22
23pub fn init(level: LevelFilter) {
24    INIT.call_once(|| {
25        let _ = log::set_logger(&LOGGER);
26    });
27    log::set_max_level(level);
28}