mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-03-10 00:00:04 +03:00
Same as it was in most previous releases. Without this, you may not see any output for certain errors. Signed-off-by: Thomas Mühlbacher <tmuehlbacher@posteo.net>
49 lines
1.3 KiB
Rust
49 lines
1.3 KiB
Rust
use std::io::Write;
|
|
|
|
use env_logger::WriteStyle;
|
|
use log::{Level, LevelFilter};
|
|
use owo_colors::{OwoColorize, Style};
|
|
|
|
pub fn setup(verbose: u8, color: bool) {
|
|
let level_filter = match verbose {
|
|
0 => LevelFilter::Warn,
|
|
1 => LevelFilter::Info,
|
|
2 => LevelFilter::Debug,
|
|
_ => LevelFilter::Trace,
|
|
};
|
|
|
|
let style = if color {
|
|
WriteStyle::Always
|
|
} else {
|
|
WriteStyle::Never
|
|
};
|
|
|
|
env_logger::Builder::new()
|
|
.filter_level(level_filter)
|
|
.write_style(style)
|
|
.parse_env("BCACHEFS_LOG")
|
|
.format(move |buf, record| {
|
|
let style = if style == WriteStyle::Never {
|
|
Style::new()
|
|
} else {
|
|
match record.level() {
|
|
Level::Trace => Style::new().cyan(),
|
|
Level::Debug => Style::new().blue(),
|
|
Level::Info => Style::new().green(),
|
|
Level::Warn => Style::new().yellow(),
|
|
Level::Error => Style::new().red().bold(),
|
|
}
|
|
};
|
|
|
|
writeln!(
|
|
buf,
|
|
"[{:<5} {}:{}] {}",
|
|
record.level().style(style),
|
|
record.file().unwrap(),
|
|
record.line().unwrap(),
|
|
record.args()
|
|
)
|
|
})
|
|
.init();
|
|
}
|