From d389ce74f220432696f48b0d0c0e9cd5066d1c51 Mon Sep 17 00:00:00 2001 From: Lucas Colombo Date: Tue, 23 Apr 2024 12:21:05 -0300 Subject: [PATCH] =?UTF-8?q?feat(logger):=20=E2=9C=A8=20replace=20external?= =?UTF-8?q?=20logs=20file=20with=20module=20path?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/logger/mod.rs | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/logger/mod.rs b/lib/logger/mod.rs index d827148..8196ad0 100644 --- a/lib/logger/mod.rs +++ b/lib/logger/mod.rs @@ -1,10 +1,13 @@ pub mod datetime; - -use eyre::{eyre, Result}; pub use log::{ 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"; struct StyledRecord { @@ -33,16 +36,23 @@ impl StyledRecord { 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 { level: format!("{}{:<5}{}", ansi_style_level, record.level(), RESET), message: format!("{}", record.args()), - file: format!( - "{}{}{}", - file_ansi_color, - record.file().unwrap_or("unknown").replace('\\', "/"), - RESET - ), - line: format!("{}{}{}", line_ansi_color, record.line().unwrap_or(0), RESET), + file: format!("{}{}{}", file_ansi_color, file.replace('\\', "/"), RESET), + line, time, } }