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}