[ty] Speedup tracing checks (#19965)

This commit is contained in:
Micha Reiser 2025-08-18 12:56:06 +02:00 committed by GitHub
parent 67529edad6
commit 5e4fa9e442
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 25 additions and 6 deletions

View File

@ -8,7 +8,9 @@ use std::sync::Arc;
use ruff_db::system::{SystemPath, SystemPathBuf}; use ruff_db::system::{SystemPath, SystemPathBuf};
use serde::Deserialize; use serde::Deserialize;
use tracing::Metadata;
use tracing::level_filters::LevelFilter; use tracing::level_filters::LevelFilter;
use tracing::subscriber::Interest;
use tracing_subscriber::Layer; use tracing_subscriber::Layer;
use tracing_subscriber::fmt::time::ChronoLocal; use tracing_subscriber::fmt::time::ChronoLocal;
use tracing_subscriber::fmt::writer::BoxMakeWriter; use tracing_subscriber::fmt::writer::BoxMakeWriter;
@ -92,12 +94,8 @@ struct LogLevelFilter {
filter: LogLevel, filter: LogLevel,
} }
impl<S> tracing_subscriber::layer::Filter<S> for LogLevelFilter { impl LogLevelFilter {
fn enabled( fn is_enabled(&self, meta: &Metadata<'_>) -> bool {
&self,
meta: &tracing::Metadata<'_>,
_: &tracing_subscriber::layer::Context<'_, S>,
) -> bool {
let filter = if meta.target().starts_with("ty") let filter = if meta.target().starts_with("ty")
|| meta.target().starts_with("ruff") || meta.target().starts_with("ruff")
|| meta.target().starts_with("e2e") || meta.target().starts_with("e2e")
@ -109,6 +107,27 @@ impl<S> tracing_subscriber::layer::Filter<S> for LogLevelFilter {
meta.level() <= &filter meta.level() <= &filter
} }
}
impl<S> tracing_subscriber::layer::Filter<S> 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<LevelFilter> { fn max_level_hint(&self) -> Option<LevelFilter> {
Some(LevelFilter::from_level(self.filter.trace_level())) Some(LevelFilter::from_level(self.filter.trace_level()))