From f68fb64a20d60a3d01ce30e4852fcaf1de87fba1 Mon Sep 17 00:00:00 2001 From: dAxpeDDa Date: Fri, 14 Apr 2023 20:25:30 +0200 Subject: [PATCH] Address review Co-Authored-By: Eliza Weisman --- tracing-subscriber/src/fmt/fmt_subscriber.rs | 18 ++++++++++++++++-- tracing-subscriber/src/fmt/mod.rs | 16 +++++++++++++++- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/tracing-subscriber/src/fmt/fmt_subscriber.rs b/tracing-subscriber/src/fmt/fmt_subscriber.rs index f6e73101e2..7cfbdbe193 100644 --- a/tracing-subscriber/src/fmt/fmt_subscriber.rs +++ b/tracing-subscriber/src/fmt/fmt_subscriber.rs @@ -274,12 +274,26 @@ impl Subscriber { } } - /// Enable ANSI terminal colors for formatted output. + /// Sets whether or not the formatter emits ANSI terminal escape codes + /// for colors and other text formatting. + /// + /// Enabling ANSI escapes (calling `with_ansi(true)`) requires the "ansi" + /// crate feature flag. Calling `with_ansi(true)` without the "ansi" + /// feature flag enabled will panic if debug assertions are enabled, or + /// print a warning otherwise. + /// + /// This method itself is still available without the feature flag. This + /// is to allow ANSI escape codes to be explicitly *disabled* without + /// having to opt-in to the dependencies required to emit ANSI formatting. + /// This way, code which constructs a formatter that should never emit + /// ANSI escape codes can ensure that they are not used, regardless of + /// whether or not other crates in the dependency graph enable the "ansi" + /// feature flag. pub fn with_ansi(self, ansi: bool) -> Self { #[cfg(not(feature = "ansi"))] if ansi { const ERROR: &str = - "tracing-subscriber: enabled ANSI terminal colors without the `ansi` crate feature"; + "tracing-subscriber: the 'ansi' crate feature is required to enable ANSI terminal colors"; #[cfg(debug_assertions)] panic!("{}", ERROR); #[cfg(not(debug_assertions))] diff --git a/tracing-subscriber/src/fmt/mod.rs b/tracing-subscriber/src/fmt/mod.rs index 24eb0a9226..38acf4d092 100644 --- a/tracing-subscriber/src/fmt/mod.rs +++ b/tracing-subscriber/src/fmt/mod.rs @@ -610,7 +610,21 @@ where } } - /// Enable ANSI terminal colors for formatted output. + /// Sets whether or not the formatter emits ANSI terminal escape codes + /// for colors and other text formatting. + /// + /// Enabling ANSI escapes (calling `with_ansi(true)`) requires the "ansi" + /// crate feature flag. Calling `with_ansi(true)` without the "ansi" + /// feature flag enabled will panic if debug assertions are enabled, or + /// print a warning otherwise. + /// + /// This method itself is still available without the feature flag. This + /// is to allow ANSI escape codes to be explicitly *disabled* without + /// having to opt-in to the dependencies required to emit ANSI formatting. + /// This way, code which constructs a formatter that should never emit + /// ANSI escape codes can ensure that they are not used, regardless of + /// whether or not other crates in the dependency graph enable the "ansi" + /// feature flag. pub fn with_ansi(self, ansi: bool) -> CollectorBuilder, F, W> { CollectorBuilder { inner: self.inner.with_ansi(ansi),