Add proper logging #9
@ -1,15 +1,34 @@
|
|||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default)]
|
||||||
pub struct Logger {
|
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 {
|
impl Logger {
|
||||||
pub fn info(&self, message: impl ToString) {
|
pub fn log<S>(&self, level: LogLevel, message: S) where S: ToString {
|
||||||
if self.quiet {
|
if level >= self.level {
|
||||||
return;
|
|
||||||
}
|
|
||||||
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]
|
#[macro_export]
|
||||||
@ -29,7 +48,7 @@ mod test {
|
|||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn syntax_test() {
|
fn syntax_test() {
|
||||||
let logger = Logger { quiet: false };
|
let logger = Logger::default();
|
||||||
log!(logger, "Foo {}", "bar");
|
log!(logger, "Foo {}", "bar");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -112,7 +112,7 @@ enum OldVersionPolicy {
|
|||||||
fn main() -> Result<(), String> {
|
fn main() -> Result<(), String> {
|
||||||
let args = Args::parse();
|
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 mut configured_servers = LazyCell::new(parse_server_configuration_from_env);
|
||||||
let servers = args
|
let servers = args
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user