use env_logger::{Builder, Target};
use log::LevelFilter;
use std::io::Write;
use std::env;
pub fn init_logger(explicit_level: Option<LevelFilter>) {
let mut builder = Builder::new();
builder.parse_env("RUST_LOG");
if let Some(level) = explicit_level {
builder.filter_module("cleansh", level);
builder.filter_level(level);
} else {
if env::var_os("RUST_LOG").is_none() {
builder.filter_level(LevelFilter::Warn);
builder.filter_module("cleansh", LevelFilter::Warn);
}
}
builder
.target(Target::Stderr)
.format(|buf, record| {
writeln!(
buf,
"[{} {}] {}",
record.level(),
record.module_path().unwrap_or(""),
record.args()
)
})
.try_init() .ok(); }