vanadin_tasks/
utils.rs

1use log::{Level, LevelFilter, SetLoggerError};
2use simplelog::{Color, ColorChoice, ConfigBuilder, TerminalMode, ThreadLogMode};
3
4use crate::types::LOG_LEVEL_ENV;
5
6#[inline(always)]
7pub fn init_logger() -> Result<(), SetLoggerError> {
8    simplelog::TermLogger::init(
9        {
10            let var = std::env::var(LOG_LEVEL_ENV).unwrap_or("INFO".to_string());
11            match var.to_uppercase().as_str() {
12                "DEBUG" => LevelFilter::Debug,
13                "INFO" => LevelFilter::Info,
14                "WARN" => LevelFilter::Warn,
15                "ERROR" => LevelFilter::Error,
16                "TRACE" => LevelFilter::Trace,
17                _ => LevelFilter::Trace,
18            }
19        },
20        ConfigBuilder::new()
21            .set_time_level(LevelFilter::Debug)
22            .set_location_level(LevelFilter::Off)
23            .set_thread_mode(ThreadLogMode::Names)
24            .set_target_level(LevelFilter::Off)
25            .set_level_color(Level::Info, Some(Color::Cyan))
26            .set_level_color(Level::Warn, Some(Color::Yellow))
27            .set_level_color(Level::Error, Some(Color::Red))
28            .set_level_color(Level::Debug, Some(Color::Green))
29            .set_level_color(Level::Trace, Some(Color::Magenta))
30            .build(),
31        TerminalMode::Mixed,
32        ColorChoice::Auto,
33    )
34}