feat(logger): replace external logs file with module path

This commit is contained in:
Lucas Colombo 2024-04-23 12:21:05 -03:00
parent aed69c2a47
commit d389ce74f2
Signed by: lucas
GPG Key ID: EF34786CFEFFAE35

View File

@ -1,10 +1,13 @@
pub mod datetime; pub mod datetime;
use eyre::{eyre, Result};
pub use log::{ pub use log::{
debug, error, info, set_max_level, trace, warn, Level, LevelFilter, Log, Metadata, Record, debug, error, info, set_max_level, trace, warn, Level, LevelFilter, Log, Metadata, Record,
}; };
use {
eyre::{eyre, Result},
std::path::Path,
};
const RESET: &str = "\x1b[0m"; const RESET: &str = "\x1b[0m";
struct StyledRecord { struct StyledRecord {
@ -33,16 +36,23 @@ impl StyledRecord {
time = format!("\x1b[2m{}\x1b[0m", time); // dim time = format!("\x1b[2m{}\x1b[0m", time); // dim
} }
let file = Path::new(record.file().unwrap_or("unknown"));
let line = match file.is_absolute() {
true => String::from(""),
false => format!("{}{}{}", line_ansi_color, record.line().unwrap_or(0), RESET),
};
let file = match file.is_absolute() {
true => record.module_path().unwrap_or("unknown"),
false => file.to_str().unwrap_or("unknown"),
};
Self { Self {
level: format!("{}{:<5}{}", ansi_style_level, record.level(), RESET), level: format!("{}{:<5}{}", ansi_style_level, record.level(), RESET),
message: format!("{}", record.args()), message: format!("{}", record.args()),
file: format!( file: format!("{}{}{}", file_ansi_color, file.replace('\\', "/"), RESET),
"{}{}{}", line,
file_ansi_color,
record.file().unwrap_or("unknown").replace('\\', "/"),
RESET
),
line: format!("{}{}{}", line_ansi_color, record.line().unwrap_or(0), RESET),
time, time,
} }
} }