env_loggerの出力に色をつけたかったのですが、exampleが見つからず、docを読んだ結果以下のような処理になりました。
[dependencies] log = "0.4.8" env_logger = "0.6.2"
use env_logger::{fmt::Color, Builder}; use log::{Level,trace,debug,info,warn,error}; use std::io::Write; fn init_logger() { let mut builder = Builder::new(); builder.format(|buf, record| { let level_color = match record.level() { Level::Trace => Color::White, Level::Debug => Color::Blue, Level::Info => Color::Green, Level::Warn => Color::Yellow, Level::Error => Color::Red, }; let mut level_style = buf.style(); level_style.set_color(level_color); writeln!( buf, "{level} {file}:{line} {args}", level = level_style.value(record.level()), args = level_style.value(record.args()), file = level_style.value(&record.file().unwrap_or("____unknown")[4..]), // src/file.rs -> file.rs line = level_style.value(record.line().unwrap_or(0)), ) }); builder.filter(None, log::LevelFilter::Trace); builder.write_style(env_logger::WriteStyle::Auto); builder.init(); } fn main() { init_logger(); trace!("trace"); debug!("debug"); info!("info"); warn!("warn"); error!("error"); }