From 3299a7ecfc35eed507817a457c14ba6459c20638 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sat, 21 Jan 2017 12:56:59 +0100 Subject: [PATCH] ImagLogger: Add option to not include file/line in dbg logging --- libimagrt/src/logger.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/libimagrt/src/logger.rs b/libimagrt/src/logger.rs index 9881aa08..d0efc82f 100644 --- a/libimagrt/src/logger.rs +++ b/libimagrt/src/logger.rs @@ -28,6 +28,7 @@ use ansi_term::ANSIString; pub struct ImagLogger { prefix: String, + dbg_fileline: bool, lvl: LogLevel, color_enabled: bool, } @@ -37,11 +38,17 @@ impl ImagLogger { pub fn new(lvl: LogLevel) -> ImagLogger { ImagLogger { prefix: "[imag]".to_owned(), + dbg_fileline: true, lvl: lvl, color_enabled: true } } + pub fn with_dbg_file_and_line(mut self, b: bool) -> ImagLogger { + self.dbg_fileline = b; + self + } + pub fn with_prefix(mut self, pref: String) -> ImagLogger { self.prefix = pref; self @@ -87,11 +94,15 @@ impl Log for ImagLogger { match record.metadata().level() { LogLevel::Debug => { let lvl = self.color_or_not(Cyan, format!("{}", record.level())); - let file = self.color_or_not(Cyan, format!("{}", loc.file())); - let ln = self.color_or_not(Cyan, format!("{}", loc.line())); let args = self.color_or_not(Cyan, format!("{}", record.args())); + if self.dbg_fileline { + let file = self.color_or_not(Cyan, format!("{}", loc.file())); + let ln = self.color_or_not(Cyan, format!("{}", loc.line())); - writeln!(stderr(), "{}[{: <5}][{}][{: >5}]: {}", self.prefix, lvl, file, ln, args).ok(); + writeln!(stderr(), "{}[{: <5}][{}][{: >5}]: {}", self.prefix, lvl, file, ln, args).ok(); + } else { + writeln!(stderr(), "{}[{: <5}]: {}", self.prefix, lvl, args).ok(); + } }, LogLevel::Warn | LogLevel::Error => { let lvl = self.style_or_not(Red.blink(), format!("{}", record.level()));