@@ -20,7 +20,6 @@ use rs_tracing::{
2020 close_trace_file, close_trace_file_internal, open_trace_file, trace_to_file_internal,
2121} ;
2222
23- use rustup:: cli:: common;
2423use rustup:: cli:: proxy_mode;
2524use rustup:: cli:: rustup_mode;
2625#[ cfg( windows) ]
@@ -30,6 +29,7 @@ use rustup::currentprocess::{process, varsource::VarSource, with, OSProcess};
3029use rustup:: env_var:: RUST_RECURSION_COUNT_MAX ;
3130use rustup:: is_proxyable_tools;
3231use rustup:: utils:: utils;
32+ use rustup:: { cli:: common, currentprocess:: filesource:: StderrSource } ;
3333
3434fn main ( ) {
3535 #[ cfg( windows) ]
@@ -61,13 +61,15 @@ fn maybe_trace_rustup() -> Result<utils::ExitCode> {
6161 trace:: { self , Sampler } ,
6262 Resource ,
6363 } ;
64- use tracing_subscriber:: { layer:: SubscriberExt , EnvFilter , Registry } ;
64+ use tracing_subscriber:: { fmt, layer:: SubscriberExt , EnvFilter , Registry } ;
65+
66+ let curr_process = process ( ) ;
6567
6668 // Background submission requires a runtime, and since we're probably
6769 // going to want async eventually, we just use tokio.
6870 let threaded_rt = tokio:: runtime:: Runtime :: new ( ) ?;
6971
70- let result = threaded_rt. block_on ( async {
72+ let result = threaded_rt. block_on ( async move {
7173 global:: set_text_map_propagator ( TraceContextPropagator :: new ( ) ) ;
7274 let tracer = opentelemetry_otlp:: new_pipeline ( )
7375 . tracing ( )
@@ -87,7 +89,14 @@ fn maybe_trace_rustup() -> Result<utils::ExitCode> {
8789 . install_batch ( opentelemetry_sdk:: runtime:: Tokio ) ?;
8890 let env_filter = EnvFilter :: try_from_default_env ( ) . unwrap_or ( EnvFilter :: new ( "INFO" ) ) ;
8991 let telemetry = tracing_opentelemetry:: layer ( ) . with_tracer ( tracer) ;
90- let subscriber = Registry :: default ( ) . with ( env_filter) . with ( telemetry) ;
92+ let subscriber = Registry :: default ( )
93+ . with (
94+ fmt:: layer ( )
95+ . with_ansi ( curr_process. stderr ( ) . is_a_tty ( ) )
96+ . with_writer ( move || curr_process. stderr ( ) ) ,
97+ )
98+ . with ( env_filter)
99+ . with ( telemetry) ;
91100 tracing:: subscriber:: set_global_default ( subscriber) ?;
92101 let result = run_rustup ( ) ;
93102 // We're tracing, so block until all spans are exported.
0 commit comments