diff --git a/crates/config-delivery/Cargo.toml b/crates/config-delivery/Cargo.toml index 0c74859..d6686e7 100644 --- a/crates/config-delivery/Cargo.toml +++ b/crates/config-delivery/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "config-delivery" -version = "0.1.0" +version = "0.3.4" edition = "2021" [dependencies] @@ -11,3 +11,7 @@ serde_json = "1.0.135" tokio = { version = "1.43.0", features = ["full"] } tokio-websockets = { version = "^0.11.0", features = ["client", "openssl", "rand"] } integr-structs = {path = "../integr-structs"} +anyhow = "1.0.95" +env_logger = "0.11.6" +log = "0.4.25" +chrono = "0.4.39" diff --git a/crates/config-delivery/src/logger.rs b/crates/config-delivery/src/logger.rs new file mode 100644 index 0000000..6578b44 --- /dev/null +++ b/crates/config-delivery/src/logger.rs @@ -0,0 +1,50 @@ +use chrono::Local; +use env_logger::Builder; +use log::LevelFilter; +use std::io::Write; +use anyhow::Result; +use log::info; + +pub async fn setup_logger() -> Result<()> { + Builder::new() + .format(move |buf, record| { + writeln!( + buf, + "|{}| {} [{}] - {}", + "config-delivery", + Local::now().format("%d-%m-%Y %H:%M:%S"), + record.level(), + record.args(), + ) + }) + .filter(None, LevelFilter::Info) + .target(env_logger::Target::Stdout) + .init(); + + info!("Logger configured"); + Ok(()) +} + + +#[cfg(test)] +mod logger_unittests { + use tokio::test; + use super::*; + #[test] + async fn check_logger_builder() { + Builder::new() + .format(move |buf, record| { + writeln!( + buf, + "|{}| {} [{}] - {}", + "config-delivery", + Local::now().format("%d-%m-%Y %H:%M:%S"), + record.level(), + record.args(), + ) + }) + .filter(None, LevelFilter::Info) + .target(env_logger::Target::Stdout) + .init(); + } +} \ No newline at end of file