summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/logging.rs27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/logging.rs b/src/logging.rs
index 98ca091f..78c0d92d 100644
--- a/src/logging.rs
+++ b/src/logging.rs
@@ -1,5 +1,8 @@
+use std::io::Write;
+
use env_logger::WriteStyle;
-use log::LevelFilter;
+use log::{Level, LevelFilter};
+use owo_colors::{OwoColorize, Style};
pub fn setup(verbose: u8, color: bool) {
let level_filter = match verbose {
@@ -19,5 +22,27 @@ pub fn setup(verbose: u8, color: bool) {
.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();
}