From 906d359c0c31b827ae4c46141ec97ce6f090caab Mon Sep 17 00:00:00 2001 From: klensy Date: Sat, 6 Sep 2025 17:52:00 +0300 Subject: [PATCH] tracing: fix perf regression when release_max_level_* not set --- tracing/src/level_filters.rs | 45 ++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/tracing/src/level_filters.rs b/tracing/src/level_filters.rs index 4e56ada2c5..008bff4dd0 100644 --- a/tracing/src/level_filters.rs +++ b/tracing/src/level_filters.rs @@ -66,21 +66,36 @@ pub use tracing_core::{metadata::ParseLevelFilterError, LevelFilter}; pub const STATIC_MAX_LEVEL: LevelFilter = get_max_level_inner(); const fn get_max_level_inner() -> LevelFilter { - if cfg!(not(debug_assertions)) { - if cfg!(feature = "release_max_level_off") { - LevelFilter::OFF - } else if cfg!(feature = "release_max_level_error") { - LevelFilter::ERROR - } else if cfg!(feature = "release_max_level_warn") { - LevelFilter::WARN - } else if cfg!(feature = "release_max_level_info") { - LevelFilter::INFO - } else if cfg!(feature = "release_max_level_debug") { - LevelFilter::DEBUG - } else { - // Same as branch cfg!(feature = "release_max_level_trace") - LevelFilter::TRACE - } + if cfg!(all( + not(debug_assertions), + feature = "release_max_level_off" + )) { + LevelFilter::OFF + } else if cfg!(all( + not(debug_assertions), + feature = "release_max_level_error" + )) { + LevelFilter::ERROR + } else if cfg!(all( + not(debug_assertions), + feature = "release_max_level_warn" + )) { + LevelFilter::WARN + } else if cfg!(all( + not(debug_assertions), + feature = "release_max_level_info" + )) { + LevelFilter::INFO + } else if cfg!(all( + not(debug_assertions), + feature = "release_max_level_debug" + )) { + LevelFilter::DEBUG + } else if cfg!(all( + not(debug_assertions), + feature = "release_max_level_trace" + )) { + LevelFilter::TRACE } else if cfg!(feature = "max_level_off") { LevelFilter::OFF } else if cfg!(feature = "max_level_error") {