From 9a8e7e666aa9c4fad3cd3f4da375e8a41c545b7c Mon Sep 17 00:00:00 2001 From: Kartavya Vashishtha Date: Wed, 10 Aug 2022 16:54:36 -0700 Subject: [PATCH] subscriber: add `must_use` for `CollectorBuilder::finish` (#2271) ## Motivation Follow up to #2239. Discovered that ```rust tracing_subscriber::fmt().with_ansi(false).finish(); tracing::info!("hello"); ``` doesn't actually do anything, because `finish` returns a `Collector` and `init` is the thing that actually installs the collector. ## Solution Added `#[must_use]` which suggests using `try_init` instead. --- tracing-subscriber/src/fmt/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/tracing-subscriber/src/fmt/mod.rs b/tracing-subscriber/src/fmt/mod.rs index f34ff691cd..2230362d0e 100644 --- a/tracing-subscriber/src/fmt/mod.rs +++ b/tracing-subscriber/src/fmt/mod.rs @@ -476,6 +476,7 @@ where subscribe::Subscribe + Send + Sync + 'static, { /// Finish the builder, returning a new `FmtCollector`. + #[must_use = "you may want to use `try_init` or similar to actually install the collector."] pub fn finish(self) -> Collector { let collector = self.inner.with_collector(Registry::default()); Collector {