march_env_logger_init/
lib.rs

1#[macro_use]
2extern crate log;
3use env_logger::Env;
4use log::LevelFilter;
5use chrono::Local;
6use std::io::Write;
7use colored::Colorize;
8pub fn init_logger() {
9    let env = Env::default();
10    env_logger::Builder::from_env(env)
11        .format(|buf, record| {
12            let level_string = format!("{}", record.level());
13            let colored_level = match record.level() {
14                log::Level::Error => level_string.red(),
15                log::Level::Warn => level_string.yellow(),
16                log::Level::Info => level_string.green(),
17                log::Level::Debug | log::Level::Trace => level_string.cyan(),
18            };
19
20            writeln!(
21                buf,
22                //"{} {} [ {} ] \n{}",
23                "{} {} \n{}",
24                Local::now().format("%Y-%m-%d %H:%M:%S"),
25                colored_level,
26                //record.module_path().unwrap_or("<unnamed>"),
27                record.args()
28            )
29        })
30        .filter(None, LevelFilter::Info)
31        .init();
32    
33    info!("env_logger initialized.");
34}