Refactor logger module
This commit is contained in:
parent
5ea52fdf0e
commit
058830e510
@ -1,15 +1,34 @@
|
||||
#[derive(Debug, Default)]
|
||||
pub struct Logger {
|
||||
pub quiet: bool,
|
||||
pub level: LogLevel,
|
||||
}
|
||||
|
||||
macro_rules! define_log_function {
|
||||
($name:ident, $level:ident) => {
|
||||
pub fn $name<S>(&self, message: S) where S: ToString {
|
||||
self.log(LogLevel::$level, message.to_string());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
impl Logger {
|
||||
pub fn info(&self, message: impl ToString) {
|
||||
if self.quiet {
|
||||
return;
|
||||
pub fn log<S>(&self, level: LogLevel, message: S) where S: ToString {
|
||||
if level >= self.level {
|
||||
println!("{}", message.to_string());
|
||||
}
|
||||
println!("{}", message.to_string());
|
||||
}
|
||||
|
||||
define_log_function!(info, Info);
|
||||
define_log_function!(debug, Debug);
|
||||
define_log_function!(error, Error);
|
||||
}
|
||||
|
||||
#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Default)]
|
||||
pub enum LogLevel {
|
||||
Debug,
|
||||
#[default]
|
||||
Info,
|
||||
Error,
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
@ -29,7 +48,7 @@ mod test {
|
||||
#[test]
|
||||
#[ignore]
|
||||
fn syntax_test() {
|
||||
let logger = Logger { quiet: false };
|
||||
let logger = Logger::default();
|
||||
log!(logger, "Foo {}", "bar");
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ enum OldVersionPolicy {
|
||||
fn main() -> Result<(), String> {
|
||||
let args = Args::parse();
|
||||
|
||||
let logger = Logger { quiet: false };
|
||||
let logger = Logger::default();
|
||||
|
||||
let mut configured_servers = LazyCell::new(parse_server_configuration_from_env);
|
||||
let servers = args
|
||||
|
||||
Loading…
Reference in New Issue
Block a user