1717 3 M/sec (when enabled) (.with_log_processor(SimpleLogProcessor::new(NoopExporter::new(true))))
1818 26 M/sec (when disabled) (.with_log_processor(SimpleLogProcessor::new(NoopExporter::new(false)))
1919*/
20+ use opentelemetry:: Key ;
2021use opentelemetry_appender_tracing:: layer;
2122use opentelemetry_sdk:: error:: OTelSdkResult ;
2223use opentelemetry_sdk:: logs:: concurrent_log_processor:: SimpleConcurrentLogProcessor ;
2324use opentelemetry_sdk:: logs:: SdkLoggerProvider ;
2425use opentelemetry_sdk:: logs:: { LogBatch , LogExporter } ;
25-
2626use opentelemetry_sdk:: Resource ;
2727use tracing:: error;
2828use tracing_subscriber:: prelude:: * ;
@@ -32,14 +32,23 @@ mod throughput;
3232#[ derive( Debug ) ]
3333struct NoopExporter {
3434 enabled : bool ,
35+ service_name : Option < String > ,
3536}
37+
3638impl NoopExporter {
3739 fn new ( enabled : bool ) -> Self {
38- Self { enabled }
40+ Self {
41+ enabled,
42+ service_name : None ,
43+ }
3944 }
4045}
46+
4147impl LogExporter for NoopExporter {
4248 async fn export ( & self , _: LogBatch < ' _ > ) -> OTelSdkResult {
49+ if let Some ( _service_name) = & self . service_name {
50+ // do something with the service name
51+ }
4352 Ok ( ( ) )
4453 }
4554
@@ -56,7 +65,11 @@ impl LogExporter for NoopExporter {
5665 self . enabled
5766 }
5867
59- fn set_resource ( & mut self , _: & Resource ) { }
68+ fn set_resource ( & mut self , res : & Resource ) {
69+ self . service_name = res
70+ . get ( & Key :: from_static_str ( "service.name" ) )
71+ . map ( |v| v. to_string ( ) ) ;
72+ }
6073}
6174
6275fn main ( ) {
0 commit comments