Skip to main content

islet_rmm/
logger.rs

1use io::Write;
2use log::{Level, LevelFilter, Metadata, Record};
3
4struct SimpleLogger;
5extern crate alloc;
6
7impl log::Log for SimpleLogger {
8    fn enabled(&self, metadata: &Metadata<'_>) -> bool {
9        metadata.level() <= Level::Trace
10    }
11
12    fn log(&self, record: &Record<'_>) {
13        if self.enabled(record.metadata()) {
14            if record.metadata().level() <= Level::Warn {
15                crate::eprintln!(
16                    "[{}]{} -- {}",
17                    record.level(),
18                    record.target(),
19                    record.args()
20                );
21            } else {
22                crate::println!(
23                    "[{}]{} -- {}",
24                    record.level(),
25                    record.target(),
26                    record.args()
27                );
28            }
29        }
30    }
31
32    fn flush(&self) {}
33}
34
35static LOGGER: SimpleLogger = SimpleLogger;
36
37pub fn register_global_logger(maxlevel: LevelFilter) {
38    log::set_logger(&LOGGER).unwrap();
39    log::set_max_level(maxlevel);
40}