@@ -301,6 +301,7 @@ pub fn init_tracing_subscriber(options: TracingSubscriberOptions) {
301
301
302
302
// Set the global telemetry disabled flag
303
303
let disabled = is_telemetry_disabled_from_options ( & options) ;
304
+ TELEMETRY_DISABLED . store ( disabled, Ordering :: SeqCst ) ;
304
305
305
306
// Use regex to filter logs - if provided; otherwise allow all logs
306
307
let regex_filter = options. regex_filter . clone ( ) ;
@@ -312,72 +313,39 @@ pub fn init_tracing_subscriber(options: TracingSubscriberOptions) {
312
313
true
313
314
}
314
315
} ) ;
315
- TELEMETRY_DISABLED . store ( disabled, Ordering :: SeqCst ) ;
316
316
317
- match ( is_json_mode_active ( ) , level_filter) {
318
- ( true , Some ( level) ) => {
317
+ // Macro to reduce duplication in subscriber setup
318
+ macro_rules! setup_subscriber {
319
+ ( $subscriber: expr) => {
319
320
#[ cfg( feature = "telemetry" ) ]
320
321
if let Some ( ( telemetry_layer, _) ) = & telemetry_layer {
321
- let subscriber = builder . json ( ) . with_max_level ( level ) . finish ( ) . with ( filter ) . with ( telemetry_layer. clone ( ) ) ;
322
- tracing:: subscriber:: set_global_default ( subscriber ) . expect ( "setting subscriber failed" ) ;
322
+ let final_subscriber = $subscriber . with( telemetry_layer. clone( ) ) ;
323
+ tracing:: subscriber:: set_global_default( final_subscriber ) . expect( "setting subscriber failed" ) ;
323
324
} else {
324
- let subscriber = builder. json ( ) . with_max_level ( level) . finish ( ) . with ( filter) ;
325
- tracing:: subscriber:: set_global_default ( subscriber) . expect ( "setting subscriber failed" ) ;
325
+ tracing:: subscriber:: set_global_default( $subscriber) . expect( "setting subscriber failed" ) ;
326
326
}
327
327
328
328
#[ cfg( not( feature = "telemetry" ) ) ]
329
- {
330
- let subscriber = builder. json ( ) . with_max_level ( level) . finish ( ) . with ( filter) ;
331
- tracing:: subscriber:: set_global_default ( subscriber) . expect ( "setting subscriber failed" ) ;
332
- }
329
+ tracing:: subscriber:: set_global_default( $subscriber) . expect( "setting subscriber failed" ) ;
330
+ } ;
331
+ }
332
+
333
+ match ( is_json_mode_active ( ) , level_filter) {
334
+ ( true , Some ( level) ) => {
335
+ let subscriber = builder. json ( ) . with_max_level ( level) . finish ( ) . with ( filter) ;
336
+ setup_subscriber ! ( subscriber) ;
333
337
}
334
338
( true , None ) => {
335
- #[ cfg( feature = "telemetry" ) ]
336
- if let Some ( ( telemetry_layer, _) ) = & telemetry_layer {
337
- let subscriber = builder. json ( ) . finish ( ) . with ( filter) . with ( telemetry_layer. clone ( ) ) ;
338
- tracing:: subscriber:: set_global_default ( subscriber) . expect ( "setting subscriber failed" ) ;
339
- } else {
340
- let subscriber = builder. json ( ) . finish ( ) . with ( filter) ;
341
- tracing:: subscriber:: set_global_default ( subscriber) . expect ( "setting subscriber failed" ) ;
342
- }
343
-
344
- #[ cfg( not( feature = "telemetry" ) ) ]
345
- {
346
- let subscriber = builder. json ( ) . finish ( ) . with ( filter) ;
347
- tracing:: subscriber:: set_global_default ( subscriber) . expect ( "setting subscriber failed" ) ;
348
- }
339
+ let subscriber = builder. json ( ) . finish ( ) . with ( filter) ;
340
+ setup_subscriber ! ( subscriber) ;
349
341
}
350
342
( false , Some ( level) ) => {
351
- #[ cfg( feature = "telemetry" ) ]
352
- if let Some ( ( telemetry_layer, _) ) = & telemetry_layer {
353
- let subscriber = builder. with_max_level ( level) . finish ( ) . with ( filter) . with ( telemetry_layer. clone ( ) ) ;
354
- tracing:: subscriber:: set_global_default ( subscriber) . expect ( "setting subscriber failed" ) ;
355
- } else {
356
- let subscriber = builder. with_max_level ( level) . finish ( ) . with ( filter) ;
357
- tracing:: subscriber:: set_global_default ( subscriber) . expect ( "setting subscriber failed" ) ;
358
- }
359
-
360
- #[ cfg( not( feature = "telemetry" ) ) ]
361
- {
362
- let subscriber = builder. with_max_level ( level) . finish ( ) . with ( filter) ;
363
- tracing:: subscriber:: set_global_default ( subscriber) . expect ( "setting subscriber failed" ) ;
364
- }
343
+ let subscriber = builder. with_max_level ( level) . finish ( ) . with ( filter) ;
344
+ setup_subscriber ! ( subscriber) ;
365
345
}
366
346
( false , None ) => {
367
- #[ cfg( feature = "telemetry" ) ]
368
- if let Some ( ( telemetry_layer, _) ) = & telemetry_layer {
369
- let subscriber = builder. finish ( ) . with ( filter) . with ( telemetry_layer. clone ( ) ) ;
370
- tracing:: subscriber:: set_global_default ( subscriber) . expect ( "setting subscriber failed" ) ;
371
- } else {
372
- let subscriber = builder. finish ( ) . with ( filter) ;
373
- tracing:: subscriber:: set_global_default ( subscriber) . expect ( "setting subscriber failed" ) ;
374
- }
375
-
376
- #[ cfg( not( feature = "telemetry" ) ) ]
377
- {
378
- let subscriber = builder. finish ( ) . with ( filter) ;
379
- tracing:: subscriber:: set_global_default ( subscriber) . expect ( "setting subscriber failed" ) ;
380
- }
347
+ let subscriber = builder. finish ( ) . with ( filter) ;
348
+ setup_subscriber ! ( subscriber) ;
381
349
}
382
350
}
383
351
@@ -514,4 +482,4 @@ mod tests {
514
482
515
483
JSON_MODE_ACTIVE . store ( false , Ordering :: SeqCst ) ;
516
484
}
517
- }
485
+ }
0 commit comments