From 4894505821540a1d94c9c3d4be84a631416a7169 Mon Sep 17 00:00:00 2001
From: Robin Appelman <robin@icewind.nl>
Date: Tue, 26 Oct 2021 16:41:29 +0200
Subject: [PATCH] automatically disable colored logging when output is not a
 tty

Signed-off-by: Robin Appelman <robin@icewind.nl>
---
 Cargo.toml  |  2 +-
 src/main.rs | 17 ++++++++---------
 2 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index a22ab48..6c34325 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -25,7 +25,7 @@ parse-display = "0.5"
 percent-encoding = "2"
 rand = "0.8"
 ahash = "0.7"
-flexi_logger = { version = "0.19", features = ["colors"] }
+flexi_logger = { version = "0.19", features = ["colors", "atty"] }
 tokio-stream = { version = "0.1", features = ["net"] }
 structopt = "0.3"
 derivative = "2"
diff --git a/src/main.rs b/src/main.rs
index f7ee889..22db885 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,5 +1,5 @@
 use color_eyre::{eyre::WrapErr, Result};
-use flexi_logger::{colored_detailed_format, detailed_format, Logger};
+use flexi_logger::{detailed_format, AdaptiveFormat, Logger};
 use notify_push::config::{Config, Opt};
 use notify_push::message::DEBOUNCE_ENABLE;
 use notify_push::metrics::serve_metrics;
@@ -30,14 +30,13 @@ async fn main() -> Result<()> {
         return Ok(());
     }
 
-    let log_handle = Logger::try_with_str(&config.log_level)?
-        .log_to_stdout()
-        .format(if config.no_ansi {
-            detailed_format
-        } else {
-            colored_detailed_format
-        })
-        .start()?;
+    let log_handle = Logger::try_with_str(&config.log_level)?.log_to_stdout();
+    let log_handle = if config.no_ansi {
+        log_handle.format_for_stdout(detailed_format)
+    } else {
+        log_handle.adaptive_format_for_stdout(AdaptiveFormat::Detailed)
+    }
+    .start()?;
 
     let (serve_cancel, serve_cancel_handle) = oneshot::channel();
     let (metrics_cancel, metrics_cancel_handle) = oneshot::channel();
-- 
GitLab