summaryrefslogtreecommitdiff
path: root/rust-src/src/commands/logger.rs
blob: 2cd7b363872f7f08817451b79f52e07c191dc7c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use colored::Colorize;
use log::{Level, Metadata, Record};

pub struct SimpleLogger;

impl log::Log for SimpleLogger {
    fn enabled(&self, _: &Metadata) -> bool {
        true
    }

    fn log(&self, record: &Record) {
        let debug_prefix = match record.level() {
            Level::Error => "ERROR".bright_red(),
            Level::Warn => "WARN".bright_yellow(),
            Level::Info => "INFO".green(),
            Level::Debug => "DEBUG".bright_blue(),
            Level::Trace => "TRACE".into(),
        };
        println!(
            "{} - {}: {}",
            debug_prefix,
            record.module_path().unwrap_or_default().bright_black(),
            record.args()
        );
    }

    fn flush(&self) {}
}