use tracing::Level;
pub fn level_for_verbosity(verbosity: u8) -> Level {
match verbosity {
0 => Level::WARN,
1 => Level::DEBUG,
_ => Level::TRACE,
}
}
pub fn init(verbosity: u8) {
let _ = tracing_subscriber::fmt()
.with_writer(std::io::stderr)
.without_time()
.with_target(false)
.with_level(false)
.with_ansi(false)
.with_max_level(level_for_verbosity(verbosity))
.try_init();
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn verbosity_maps_to_levels() {
assert_eq!(level_for_verbosity(0), Level::WARN);
assert_eq!(level_for_verbosity(1), Level::DEBUG);
assert_eq!(level_for_verbosity(2), Level::TRACE);
assert_eq!(level_for_verbosity(9), Level::TRACE);
}
}