base_ui/core/
logger.rs

1use colored::*;
2use log::{ Level, LevelFilter, Metadata, Record };
3
4pub struct Logger;
5
6impl log::Log for Logger {
7    fn enabled(&self, metadata: &Metadata) -> bool {
8        metadata.level() <= Level::Debug
9    }
10
11    fn log(&self, record: &Record) {
12        if self.enabled(record.metadata()) {
13            let message = match record.level() {
14                Level::Error => record.args().to_string().red().bold(),
15                Level::Warn => record.args().to_string().yellow().bold(),
16                Level::Info => record.args().to_string().green(),
17                Level::Debug => record.args().to_string().blue(),
18                Level::Trace => record.args().to_string().magenta(),
19            };
20            println!("[{}] {}", record.level().to_string().bold(), message);
21        }
22    }
23
24    fn flush(&self) {}
25}
26
27pub fn initialize() {
28    log::set_logger(&Logger)
29        .map(|()| log::set_max_level(LevelFilter::Debug))
30        .expect("Failed to initialize logger");
31}