Skip to content

Commit 5e4fa9e

Browse files
authored
[ty] Speedup tracing checks (#19965)
1 parent 67529ed commit 5e4fa9e

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

crates/ty_server/src/logging.rs

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ use std::sync::Arc;
88

99
use ruff_db::system::{SystemPath, SystemPathBuf};
1010
use serde::Deserialize;
11+
use tracing::Metadata;
1112
use tracing::level_filters::LevelFilter;
13+
use tracing::subscriber::Interest;
1214
use tracing_subscriber::Layer;
1315
use tracing_subscriber::fmt::time::ChronoLocal;
1416
use tracing_subscriber::fmt::writer::BoxMakeWriter;
@@ -92,12 +94,8 @@ struct LogLevelFilter {
9294
filter: LogLevel,
9395
}
9496

95-
impl<S> tracing_subscriber::layer::Filter<S> for LogLevelFilter {
96-
fn enabled(
97-
&self,
98-
meta: &tracing::Metadata<'_>,
99-
_: &tracing_subscriber::layer::Context<'_, S>,
100-
) -> bool {
97+
impl LogLevelFilter {
98+
fn is_enabled(&self, meta: &Metadata<'_>) -> bool {
10199
let filter = if meta.target().starts_with("ty")
102100
|| meta.target().starts_with("ruff")
103101
|| meta.target().starts_with("e2e")
@@ -109,6 +107,27 @@ impl<S> tracing_subscriber::layer::Filter<S> for LogLevelFilter {
109107

110108
meta.level() <= &filter
111109
}
110+
}
111+
112+
impl<S> tracing_subscriber::layer::Filter<S> for LogLevelFilter {
113+
fn enabled(
114+
&self,
115+
meta: &tracing::Metadata<'_>,
116+
_: &tracing_subscriber::layer::Context<'_, S>,
117+
) -> bool {
118+
self.is_enabled(meta)
119+
}
120+
121+
fn callsite_enabled(&self, meta: &'static Metadata<'static>) -> Interest {
122+
// The result of `self.enabled(metadata, ...)` will always be
123+
// the same for any given `Metadata`, so we can convert it into
124+
// an `Interest`:
125+
if self.is_enabled(meta) {
126+
Interest::always()
127+
} else {
128+
Interest::never()
129+
}
130+
}
112131

113132
fn max_level_hint(&self) -> Option<LevelFilter> {
114133
Some(LevelFilter::from_level(self.filter.trace_level()))

0 commit comments

Comments
 (0)