@@ -8,7 +8,9 @@ use std::sync::Arc;
8
8
9
9
use ruff_db:: system:: { SystemPath , SystemPathBuf } ;
10
10
use serde:: Deserialize ;
11
+ use tracing:: Metadata ;
11
12
use tracing:: level_filters:: LevelFilter ;
13
+ use tracing:: subscriber:: Interest ;
12
14
use tracing_subscriber:: Layer ;
13
15
use tracing_subscriber:: fmt:: time:: ChronoLocal ;
14
16
use tracing_subscriber:: fmt:: writer:: BoxMakeWriter ;
@@ -92,12 +94,8 @@ struct LogLevelFilter {
92
94
filter : LogLevel ,
93
95
}
94
96
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 {
101
99
let filter = if meta. target ( ) . starts_with ( "ty" )
102
100
|| meta. target ( ) . starts_with ( "ruff" )
103
101
|| meta. target ( ) . starts_with ( "e2e" )
@@ -109,6 +107,27 @@ impl<S> tracing_subscriber::layer::Filter<S> for LogLevelFilter {
109
107
110
108
meta. level ( ) <= & filter
111
109
}
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
+ }
112
131
113
132
fn max_level_hint ( & self ) -> Option < LevelFilter > {
114
133
Some ( LevelFilter :: from_level ( self . filter . trace_level ( ) ) )
0 commit comments