shell_scene/
logging.rs

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}