bump a lot of big changes I dont want to break down into individual commits
This commit is contained in:
45
src/logging.rs
Normal file
45
src/logging.rs
Normal file
@@ -0,0 +1,45 @@
|
||||
use esp_println::println;
|
||||
use log::{LevelFilter, Metadata, Record};
|
||||
|
||||
pub struct RenderbugLogger;
|
||||
|
||||
impl RenderbugLogger {
|
||||
pub fn init_logger() {
|
||||
unsafe {
|
||||
log::set_logger_racy(&Self).ok();
|
||||
log::set_max_level_racy(LevelFilter::Debug);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
impl log::Log for RenderbugLogger {
|
||||
fn enabled(&self, _metadata: &Metadata) -> bool {true}
|
||||
|
||||
fn flush(&self) {}
|
||||
|
||||
fn log(&self, record: &Record) {
|
||||
const RESET: &str = "\u{001B}[0m";
|
||||
const RED: &str = "\u{001B}[31m";
|
||||
const GREEN: &str = "\u{001B}[32m";
|
||||
const YELLOW: &str = "\u{001B}[33m";
|
||||
const BLUE: &str = "\u{001B}[34m";
|
||||
const CYAN: &str = "\u{001B}[35m";
|
||||
const GREY: &str = "\u{001B}[38;5;240m";
|
||||
|
||||
let color = match record.level() {
|
||||
log::Level::Error => RED,
|
||||
log::Level::Warn => YELLOW,
|
||||
log::Level::Info => GREEN,
|
||||
log::Level::Debug => BLUE,
|
||||
log::Level::Trace => CYAN,
|
||||
};
|
||||
|
||||
let filename = record.file().map_or("???", |f| {f});
|
||||
if filename.chars().nth(0).unwrap() == '/' {
|
||||
return;
|
||||
}
|
||||
let prefix = filename.split('/').next().unwrap();
|
||||
let suffix = filename.split('/').next_back().unwrap();
|
||||
println!("{color}{}\t{GREY}{prefix}/{suffix}:{}{RESET}\t{}{RESET}", record.level(), record.line().map_or(0, |f| {f}), record.args())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user