1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
extern crate log; use env_logger::{ self, fmt::{Color, Style}, Env, }; use log::Level; pub fn init(level: &str) { let mut builder = env_logger::from_env(Env::default().default_filter_or(level)); builder.format(|f, record| { use std::io::Write; let mut style = f.style(); let emoji = level_style(&mut style, record.level()); writeln!(f, " {} {}", emoji, style.value(record.args())) }); builder.init() } fn level_style(style: &mut Style, level: Level) -> &'static str { match level { Level::Trace => { style.set_color(Color::Magenta); "🔍" } Level::Debug => { style.set_color(Color::Blue); "›" } Level::Info => { style.set_color(Color::Green); ">" } Level::Warn => { style.set_color(Color::Yellow); "⚠️" } Level::Error => { style.set_color(Color::Red); "⚡" } } }