#logger #logging #log #env-var

pretty_flexible_env_logger

A visually pretty yet a bit configurable env_logger

1 unstable release

0.1.0 Feb 9, 2023

#688 in Debugging

CC0 license

12KB
54 lines

pretty-flexible-env-logger

Crates.io Docs CC0-1.0 GitHub CI

A simple logger built on top of pretty_env_logger. An upstream's design decision was not to allow run-time configuration, but I have found that for CLI tools it actually makes sense to control logging in runtime based on command-line params, rather than requiring users to set RUST_LOG directly.

To keep things simple, init_with tries to look up passed string as an environment variable, and if that fails it considers the value to be inlined configuration, same as you would set RUST_LOG with.

let args: Vec<String> = env::args().collect();
let default = "RUST_LOG".to_string();
let level = args.get(1).unwrap_or(&default);
if let Err(e) = pretty_flexible_env_logger::try_init_with(level) {
    eprintln!("Some custom msg {}", e);
    panic!("error!") // or whatever
}

info!("info");
warn!("warn");
error!("error");
debug!("debug");

License

This crate is a little contribution built on the shoulders of giants:

Dependencies

~2–11MB
~100K SLoC