58 lines
1.4 KiB
Rust
58 lines
1.4 KiB
Rust
use std::str::FromStr;
|
|
use anyhow::Result;
|
|
use tracing::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<()> {
|
|
let log_level = std::env::var("IM_LOG_INFO").unwrap_or_else(|_| String::from("INFO"));
|
|
|
|
tracing_subscriber::fmt()
|
|
.with_max_level(
|
|
tracing::Level::from_str(&log_level)
|
|
.unwrap_or_else(|_| tracing::Level::INFO))
|
|
.with_writer(std::io::stdout)
|
|
.with_span_events(tracing_subscriber::fmt::format::FmtSpan::NEW)
|
|
// .with_timer(Local::now().format("%d-%m-%Y %H:%M:%S"))
|
|
.with_line_number(false)
|
|
.with_target(false)
|
|
.with_file(false)
|
|
.compact()
|
|
.init();
|
|
|
|
info!("Logger configured");
|
|
Ok(())
|
|
}
|
|
|
|
|
|
#[cfg(test)]
|
|
mod logger_unittests {
|
|
use tokio::test;
|
|
#[test]
|
|
async fn check_logger_builder() {
|
|
tracing_subscriber::fmt()
|
|
.with_max_level(tracing::Level::INFO)
|
|
.with_test_writer()
|
|
.with_span_events(tracing_subscriber::fmt::format::FmtSpan::NEW)
|
|
// .with_timer(Local::now().format("%d-%m-%Y %H:%M:%S"))
|
|
.with_line_number(false)
|
|
.with_target(false)
|
|
.with_file(false)
|
|
.compact()
|
|
.init();
|
|
}
|
|
} |