1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use std::io::Write;
pub fn init_logging(mut level: clap_verbosity_flag::Verbosity, colored: bool) {
level.set_default(Some(log::Level::Info));
if let Some(level) = level.log_level() {
let mut builder = env_logger::Builder::new();
builder.write_style(if colored {
env_logger::WriteStyle::Always
} else {
env_logger::WriteStyle::Never
});
builder.filter(None, level.to_level_filter());
if level == log::LevelFilter::Trace || level == log::LevelFilter::Debug {
builder.format_timestamp_secs();
} else {
builder.format(|f, record| {
if record.level() == log::LevelFilter::Info {
writeln!(f, "{}", record.args())
} else {
writeln!(f, "[{}] {}", record.level(), record.args())
}
});
}
builder.init();
}
}