use chrono::Local; use env_logger::Builder; use log::LevelFilter; use std::io::Write; use anyhow::Result; use log::info; /// # Fn `setup_logger` /// /// ## function to init terminal logger /// /// ### Dev-Info : /// /// *input* : - /// /// *output* : `anyhow::Result<()>` /// /// *initiator* : fn `main` /// /// *managing* : - /// /// *depends on* : - /// pub async fn setup_logger() -> Result<()> { Builder::new() .format(move |buf, record| { writeln!( buf, "|{}| {} [{}] - {}", "api-grubber", 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, "|{}| {} [{}] - {}", "api-grubber", Local::now().format("%d-%m-%Y %H:%M:%S"), record.level(), record.args(), ) }) .filter(None, LevelFilter::Info) .target(env_logger::Target::Stdout) .init(); } }