1use clap::ArgMatches;
2use std::str::FromStr;
3
4pub fn init_from_matches(matches: &ArgMatches) {
5 let level = if matches.get_flag("verbose") {
6 Some("debug".to_string())
7 } else {
8 matches.get_one::<String>("log").cloned()
9 }
10 .or_else(|| std::env::var("RUST_LOG").ok())
11 .unwrap_or_else(|| "info".to_string());
12
13 env_logger::Builder::new()
14 .filter_level(log::LevelFilter::from_str(&level).unwrap_or(log::LevelFilter::Info))
15 .format_timestamp(None)
16 .init();
17 log::debug!("logging initialized at {level}");
18}