pretty_flexible_env_logger

Crates.iopretty_flexible_env_logger
lib.rspretty_flexible_env_logger
version0.1.0
sourcesrc
created_at2023-02-09 11:10:31.032161
updated_at2023-02-09 11:10:31.032161
descriptionA visually pretty yet a bit configurable env_logger
homepage
repositoryhttps://git.sr.ht/~unjello/pretty_flexible_env_logger
max_upload_size
id780650
size22,106
Andrzej Lichnerowicz (unjello)

documentation

README

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

Related Work

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

Commit count: 0

cargo fmt