@@ -296,6 +296,19 @@ pub fn enable_tracing(trace_level_arg: &Option<TraceLevel>, trace_format_arg: &O
296
296
let mut policy_is_used = false ;
297
297
let mut tracing_setting = TracingSetting :: default ( ) ;
298
298
299
+ let default_filter = EnvFilter :: try_from_default_env ( )
300
+ . or_else ( |_| EnvFilter :: try_new ( "warning" ) )
301
+ . unwrap_or_default ( )
302
+ . add_directive ( Level :: TRACE . into ( ) ) ;
303
+ let default_indicatif_layer = IndicatifLayer :: new ( ) ;
304
+ let default_layer = tracing_subscriber:: fmt:: Layer :: default ( ) . with_writer ( default_indicatif_layer. get_stderr_writer ( ) ) ;
305
+ let default_fmt = default_layer
306
+ . with_ansi ( true )
307
+ . with_level ( true )
308
+ . boxed ( ) ;
309
+ let default_subscriber = tracing_subscriber:: Registry :: default ( ) . with ( default_fmt) . with ( default_filter) . with ( default_indicatif_layer) ;
310
+ let default_guard = tracing:: subscriber:: set_default ( default_subscriber) ;
311
+
299
312
// read setting/policy from files
300
313
if let Ok ( v) = get_setting ( "tracing" ) {
301
314
if v. policy != serde_json:: Value :: Null {
@@ -304,18 +317,18 @@ pub fn enable_tracing(trace_level_arg: &Option<TraceLevel>, trace_format_arg: &O
304
317
tracing_setting = v;
305
318
policy_is_used = true ;
306
319
} ,
307
- Err ( e) => { println ! ( "{e}" ) ; }
320
+ Err ( e) => { error ! ( "{e}" ) ; }
308
321
}
309
322
} else if v. setting != serde_json:: Value :: Null {
310
323
match serde_json:: from_value :: < TracingSetting > ( v. setting ) {
311
324
Ok ( v) => {
312
325
tracing_setting = v;
313
326
} ,
314
- Err ( e) => { println ! ( "{e}" ) ; }
327
+ Err ( e) => { error ! ( "{e}" ) ; }
315
328
}
316
329
}
317
330
} else {
318
- println ! ( "Could not read 'tracing' setting" ) ;
331
+ error ! ( "Could not read 'tracing' setting" ) ;
319
332
}
320
333
321
334
// override with DSC_TRACE_LEVEL env var if permitted
@@ -392,6 +405,7 @@ pub fn enable_tracing(trace_level_arg: &Option<TraceLevel>, trace_format_arg: &O
392
405
393
406
let subscriber = tracing_subscriber:: Registry :: default ( ) . with ( fmt) . with ( filter) . with ( indicatif_layer) ;
394
407
408
+ drop ( default_guard) ;
395
409
if tracing:: subscriber:: set_global_default ( subscriber) . is_err ( ) {
396
410
eprintln ! ( "Unable to set global default tracing subscriber. Tracing is diabled." ) ;
397
411
}
0 commit comments