From 5e4fa9e4421be6692129b0c04cee3681555d5933 Mon Sep 17 00:00:00 2001 From: Micha Reiser Date: Mon, 18 Aug 2025 12:56:06 +0200 Subject: [PATCH] [ty] Speedup tracing checks (#19965) --- crates/ty_server/src/logging.rs | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/crates/ty_server/src/logging.rs b/crates/ty_server/src/logging.rs index 467455cdbb..65c4586477 100644 --- a/crates/ty_server/src/logging.rs +++ b/crates/ty_server/src/logging.rs @@ -8,7 +8,9 @@ use std::sync::Arc; use ruff_db::system::{SystemPath, SystemPathBuf}; use serde::Deserialize; +use tracing::Metadata; use tracing::level_filters::LevelFilter; +use tracing::subscriber::Interest; use tracing_subscriber::Layer; use tracing_subscriber::fmt::time::ChronoLocal; use tracing_subscriber::fmt::writer::BoxMakeWriter; @@ -92,12 +94,8 @@ struct LogLevelFilter { filter: LogLevel, } -impl tracing_subscriber::layer::Filter for LogLevelFilter { - fn enabled( - &self, - meta: &tracing::Metadata<'_>, - _: &tracing_subscriber::layer::Context<'_, S>, - ) -> bool { +impl LogLevelFilter { + fn is_enabled(&self, meta: &Metadata<'_>) -> bool { let filter = if meta.target().starts_with("ty") || meta.target().starts_with("ruff") || meta.target().starts_with("e2e") @@ -109,6 +107,27 @@ impl tracing_subscriber::layer::Filter for LogLevelFilter { meta.level() <= &filter } +} + +impl tracing_subscriber::layer::Filter for LogLevelFilter { + fn enabled( + &self, + meta: &tracing::Metadata<'_>, + _: &tracing_subscriber::layer::Context<'_, S>, + ) -> bool { + self.is_enabled(meta) + } + + fn callsite_enabled(&self, meta: &'static Metadata<'static>) -> Interest { + // The result of `self.enabled(metadata, ...)` will always be + // the same for any given `Metadata`, so we can convert it into + // an `Interest`: + if self.is_enabled(meta) { + Interest::always() + } else { + Interest::never() + } + } fn max_level_hint(&self) -> Option { Some(LevelFilter::from_level(self.filter.trace_level()))