@@ -31,7 +31,9 @@ use tracing::Level;
3131use tracing:: { info, warn} ;
3232use tracing_subscriber:: layer:: SubscriberExt ;
3333use tracing_subscriber:: util:: SubscriberInitExt ;
34- use tracing_subscriber:: { EnvFilter , Registry , fmt} ;
34+ use tracing_subscriber:: { EnvFilter , Layer , Registry , fmt} ;
35+
36+ const OTEL_TRACE_LEVEL : & str = "OTEL_TRACE_LEVEL" ;
3537
3638#[ actix_web:: main]
3739async fn main ( ) -> anyhow:: Result < ( ) > {
@@ -105,35 +107,35 @@ async fn main() -> anyhow::Result<()> {
105107}
106108
107109pub fn init_logger ( ) -> Option < SdkTracerProvider > {
108- let filter_layer = EnvFilter :: try_from_default_env ( ) . unwrap_or_else ( |_| {
109- let default_level = if cfg ! ( debug_assertions ) {
110- Level :: DEBUG
111- } else {
112- Level :: WARN
113- } ;
114- EnvFilter :: new ( default_level . to_string ( ) )
115- } ) ;
110+ let default_level = if cfg ! ( debug_assertions ) {
111+ Level :: DEBUG
112+ } else {
113+ Level :: WARN
114+ } ;
115+
116+ let fmt_filter = EnvFilter :: try_from_default_env ( )
117+ . unwrap_or_else ( |_| EnvFilter :: new ( default_level . to_string ( ) ) ) ;
116118
117119 let fmt_layer = fmt:: layer ( )
118120 . with_thread_names ( true )
119121 . with_thread_ids ( true )
120122 . with_line_number ( true )
121123 . with_timer ( tracing_subscriber:: fmt:: time:: UtcTime :: rfc_3339 ( ) )
122124 . with_target ( true )
123- . compact ( ) ;
125+ . compact ( )
126+ . with_filter ( fmt_filter. clone ( ) ) ;
124127
125128 let otel_provider = telemetry:: init_otel_tracer ( ) ;
126129
127130 let otel_layer = otel_provider. as_ref ( ) . map ( |provider| {
131+ let otel_filter = EnvFilter :: try_from_env ( OTEL_TRACE_LEVEL ) . unwrap_or ( fmt_filter) ;
128132 let tracer = provider. tracer ( "parseable" ) ;
129- tracing_opentelemetry:: layer ( ) . with_tracer ( tracer)
133+ tracing_opentelemetry:: layer ( )
134+ . with_tracer ( tracer)
135+ . with_filter ( otel_filter)
130136 } ) ;
131137
132- Registry :: default ( )
133- . with ( filter_layer)
134- . with ( fmt_layer)
135- . with ( otel_layer)
136- . init ( ) ;
138+ Registry :: default ( ) . with ( fmt_layer) . with ( otel_layer) . init ( ) ;
137139
138140 otel_provider
139141}
0 commit comments