diff --git a/src/sync.rs b/src/sync.rs index a6b9548..596cd65 100644 --- a/src/sync.rs +++ b/src/sync.rs @@ -97,9 +97,9 @@ impl Logger { pub fn print(&mut self, level: LEVEL, module: &str, message: &str) { let mut console = String::new(); - let mut msg =String::new(); + let mut msg = String::new(); let mut is_bodyfmt = false; - + if let Some(f) = &self.attrfmt.bodyfmt { is_bodyfmt = true; msg = f(level, message.to_string()); @@ -121,10 +121,34 @@ impl Logger { } if filename != "" { if *filename == self.filehandle.0 { - let _ = self.filehandle.1.print(is_mod_console,if is_mod_console{if is_consolefmt{console.as_str()}else{""}}else{""} , if is_bodyfmt{msg.as_str()}else{message}); + let _ = self.filehandle.1.print( + is_mod_console, + if is_mod_console { + if is_consolefmt { + console.as_str() + } else { + "" + } + } else { + "" + }, + if is_bodyfmt { msg.as_str() } else { message }, + ); } else { if let Some(fm) = self.fmap.get_mut(filename) { - let _ = fm.print(is_mod_console,if is_mod_console{if is_consolefmt{console.as_str()}else{""}}else{""} , if is_bodyfmt{msg.as_str()}else{message}); + let _ = fm.print( + is_mod_console, + if is_mod_console { + if is_consolefmt { + console.as_str() + } else { + "" + } + } else { + "" + }, + if is_bodyfmt { msg.as_str() } else { message }, + ); } } return; @@ -139,7 +163,7 @@ impl Logger { let mut is_consolefmt = false; if let Some(cs) = lo.console { is_level_console = cs; - if is_level_console && console.is_empty(){ + if is_level_console && console.is_empty() { if let Some(f) = &self.attrfmt.console_bodyfmt { is_consolefmt = true; console = f(level, message.to_string()); @@ -148,10 +172,34 @@ impl Logger { } if filename != "" { if *filename == self.filehandle.0 { - let _ = self.filehandle.1.print(is_level_console,if is_level_console{if is_consolefmt{console.as_str()}else{""}}else{""} , if is_bodyfmt{msg.as_str()}else{message}); + let _ = self.filehandle.1.print( + is_level_console, + if is_level_console { + if is_consolefmt { + console.as_str() + } else { + "" + } + } else { + "" + }, + if is_bodyfmt { msg.as_str() } else { message }, + ); } else { if let Some(fm) = self.fmap.get_mut(filename) { - let _ = fm.print(is_level_console,if is_level_console{if is_consolefmt{console.as_str()}else{""}}else{""} , if is_bodyfmt{msg.as_str()}else{message}); + let _ = fm.print( + is_level_console, + if is_level_console { + if is_consolefmt { + console.as_str() + } else { + "" + } + } else { + "" + }, + if is_bodyfmt { msg.as_str() } else { message }, + ); } } return; @@ -159,7 +207,7 @@ impl Logger { } } - let is_console = self.fmthandle.get_console(); + let is_console = self.fmthandle.get_console(); let mut is_consolefmt = false; if is_console && console.is_empty() { if let Some(f) = &self.attrfmt.console_bodyfmt { @@ -167,15 +215,27 @@ impl Logger { console = f(level, message.to_string()); } } - let _ = self.filehandle.1.print(is_console,if is_console{if is_consolefmt{console.as_str()}else{""}}else{""} , if is_bodyfmt{msg.as_str()}else{message}); + let _ = self.filehandle.1.print( + is_console, + if is_console { + if is_consolefmt { + console.as_str() + } else { + "" + } + } else { + "" + }, + if is_bodyfmt { msg.as_str() } else { message }, + ); } pub fn safeprint(&mut self, level: LEVEL, module: &str, message: &str) { let _guard = self.mutex.lock().expect("Failed to acquire lock"); let mut console = String::new(); - let mut msg =String::new(); + let mut msg = String::new(); let mut is_bodyfmt = false; - + if let Some(f) = &self.attrfmt.bodyfmt { is_bodyfmt = true; msg = f(level, message.to_string()); @@ -197,10 +257,34 @@ impl Logger { } if filename != "" { if *filename == self.filehandle.0 { - let _ = self.filehandle.1.print(is_mod_console,if is_mod_console{if is_consolefmt{console.as_str()}else{""}}else{""} , if is_bodyfmt{msg.as_str()}else{message}); + let _ = self.filehandle.1.print( + is_mod_console, + if is_mod_console { + if is_consolefmt { + console.as_str() + } else { + "" + } + } else { + "" + }, + if is_bodyfmt { msg.as_str() } else { message }, + ); } else { if let Some(fm) = self.fmap.get_mut(filename) { - let _ = fm.print(is_mod_console,if is_mod_console{if is_consolefmt{console.as_str()}else{""}}else{""} , if is_bodyfmt{msg.as_str()}else{message}); + let _ = fm.print( + is_mod_console, + if is_mod_console { + if is_consolefmt { + console.as_str() + } else { + "" + } + } else { + "" + }, + if is_bodyfmt { msg.as_str() } else { message }, + ); } } return; @@ -215,7 +299,7 @@ impl Logger { let mut is_consolefmt = false; if let Some(cs) = lo.console { is_level_console = cs; - if is_level_console && console.is_empty(){ + if is_level_console && console.is_empty() { if let Some(f) = &self.attrfmt.console_bodyfmt { is_consolefmt = true; console = f(level, message.to_string()); @@ -224,10 +308,34 @@ impl Logger { } if filename != "" { if *filename == self.filehandle.0 { - let _ = self.filehandle.1.print(is_level_console,if is_level_console{if is_consolefmt{console.as_str()}else{""}}else{""} , if is_bodyfmt{msg.as_str()}else{message}); + let _ = self.filehandle.1.print( + is_level_console, + if is_level_console { + if is_consolefmt { + console.as_str() + } else { + "" + } + } else { + "" + }, + if is_bodyfmt { msg.as_str() } else { message }, + ); } else { if let Some(fm) = self.fmap.get_mut(filename) { - let _ = fm.print(is_level_console,if is_level_console{if is_consolefmt{console.as_str()}else{""}}else{""} , if is_bodyfmt{msg.as_str()}else{message}); + let _ = fm.print( + is_level_console, + if is_level_console { + if is_consolefmt { + console.as_str() + } else { + "" + } + } else { + "" + }, + if is_bodyfmt { msg.as_str() } else { message }, + ); } } return; @@ -235,7 +343,7 @@ impl Logger { } } - let is_console = self.fmthandle.get_console(); + let is_console = self.fmthandle.get_console(); let mut is_consolefmt = false; if is_console && console.is_empty() { if let Some(f) = &self.attrfmt.console_bodyfmt { @@ -243,7 +351,19 @@ impl Logger { console = f(level, message.to_string()); } } - let _ = self.filehandle.1.print(is_console,if is_console{if is_consolefmt{console.as_str()}else{""}}else{""} , if is_bodyfmt{msg.as_str()}else{message}); + let _ = self.filehandle.1.print( + is_console, + if is_console { + if is_consolefmt { + console.as_str() + } else { + "" + } + } else { + "" + }, + if is_bodyfmt { msg.as_str() } else { message }, + ); } pub fn log(&self, level: LEVEL, module: String, message: String) { @@ -362,6 +482,14 @@ impl Logger { self } + pub fn set_cutmode_by_mixed(&mut self, filename: &str, maxsize: u64, mode: MODE, maxbackups: u32, compress: bool) -> &mut Self { + let ftm = FileOptionType::new(crate::CUTMODE::MIXED, mode, filename, maxsize, maxbackups, compress); + let fh = FileHandler::new(Box::new(ftm)); + self.filehandle.0 = filename.to_string(); + self.filehandle.1.set_file_handler(fh.unwrap()); + self + } + pub fn set_option(&mut self, option: LogOption) -> &mut Self { if let Some(v) = option.console { self.fmthandle.set_console(v); @@ -528,6 +656,13 @@ impl Log { self } + pub fn set_cutmode_by_mixed(&self, filename: &str, maxsize: u64, mode: MODE, maxbackups: u32, compress: bool) -> &Self { + unsafe { + synclog.set_cutmode_by_mixed(filename, maxsize, mode, maxbackups, compress); + } + self + } + pub fn set_option(&self, option: LogOption) -> &Self { unsafe { synclog.set_option(option);