rusteron_code_gen/
test_logger.rs1use 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}