1
- use opentelemetry_api:: {
2
- logs:: { AnyValue , LogRecord , Logger , LoggerProvider , Severity } ,
3
- Key , OrderMap ,
4
- } ;
1
+ use std:: vec;
2
+
3
+ use opentelemetry_api:: logs:: { LogRecord , Logger , LoggerProvider , Severity } ;
5
4
6
5
use tracing_subscriber:: Layer ;
7
6
@@ -16,52 +15,47 @@ impl<'a> tracing::field::Visit for EventVisitor<'a> {
16
15
fn record_debug ( & mut self , field : & tracing:: field:: Field , value : & dyn std:: fmt:: Debug ) {
17
16
if field. name ( ) == "message" {
18
17
self . log_record . body = Some ( format ! ( "{value:?}" ) . into ( ) ) ;
19
- } else if let Some ( ref mut map ) = self . log_record . attributes {
20
- map . insert ( field. name ( ) . into ( ) , format ! ( "{value:?}" ) . into ( ) ) ;
18
+ } else if let Some ( ref mut vec ) = self . log_record . attributes {
19
+ vec . push ( ( field. name ( ) . into ( ) , format ! ( "{value:?}" ) . into ( ) ) ) ;
21
20
} else {
22
- let mut map = OrderMap :: with_capacity ( 1 ) ;
23
- map. insert ( field. name ( ) . into ( ) , format ! ( "{value:?}" ) . into ( ) ) ;
24
- self . log_record . attributes = Some ( map) ;
21
+ let vec = vec ! [ ( field. name( ) . into( ) , format!( "{value:?}" ) . into( ) ) ] ;
22
+ self . log_record . attributes = Some ( vec) ;
25
23
}
26
24
}
27
25
28
26
fn record_str ( & mut self , field : & tracing_core:: Field , value : & str ) {
29
- if let Some ( ref mut map ) = self . log_record . attributes {
30
- map . insert ( field. name ( ) . into ( ) , value. to_owned ( ) . into ( ) ) ;
27
+ if let Some ( ref mut vec ) = self . log_record . attributes {
28
+ vec . push ( ( field. name ( ) . into ( ) , value. to_owned ( ) . into ( ) ) ) ;
31
29
} else {
32
- let mut map: OrderMap < Key , AnyValue > = OrderMap :: with_capacity ( 1 ) ;
33
- map. insert ( field. name ( ) . into ( ) , value. to_owned ( ) . into ( ) ) ;
34
- self . log_record . attributes = Some ( map) ;
30
+ let vec = vec ! [ ( field. name( ) . into( ) , value. to_owned( ) . into( ) ) ] ;
31
+ self . log_record . attributes = Some ( vec) ;
35
32
}
36
33
}
37
34
38
35
fn record_bool ( & mut self , field : & tracing_core:: Field , value : bool ) {
39
- if let Some ( ref mut map ) = self . log_record . attributes {
40
- map . insert ( field. name ( ) . into ( ) , value. into ( ) ) ;
36
+ if let Some ( ref mut vec ) = self . log_record . attributes {
37
+ vec . push ( ( field. name ( ) . into ( ) , value. into ( ) ) ) ;
41
38
} else {
42
- let mut map = OrderMap :: with_capacity ( 1 ) ;
43
- map. insert ( field. name ( ) . into ( ) , value. into ( ) ) ;
44
- self . log_record . attributes = Some ( map) ;
39
+ let vec = vec ! [ ( field. name( ) . into( ) , value. into( ) ) ] ;
40
+ self . log_record . attributes = Some ( vec) ;
45
41
}
46
42
}
47
43
48
44
fn record_f64 ( & mut self , field : & tracing:: field:: Field , value : f64 ) {
49
- if let Some ( ref mut map ) = self . log_record . attributes {
50
- map . insert ( field. name ( ) . into ( ) , value. into ( ) ) ;
45
+ if let Some ( ref mut vec ) = self . log_record . attributes {
46
+ vec . push ( ( field. name ( ) . into ( ) , value. into ( ) ) ) ;
51
47
} else {
52
- let mut map = OrderMap :: with_capacity ( 1 ) ;
53
- map. insert ( field. name ( ) . into ( ) , value. into ( ) ) ;
54
- self . log_record . attributes = Some ( map) ;
48
+ let vec = vec ! [ ( field. name( ) . into( ) , value. into( ) ) ] ;
49
+ self . log_record . attributes = Some ( vec) ;
55
50
}
56
51
}
57
52
58
53
fn record_i64 ( & mut self , field : & tracing:: field:: Field , value : i64 ) {
59
- if let Some ( ref mut map ) = self . log_record . attributes {
60
- map . insert ( field. name ( ) . into ( ) , value. into ( ) ) ;
54
+ if let Some ( ref mut vec ) = self . log_record . attributes {
55
+ vec . push ( ( field. name ( ) . into ( ) , value. into ( ) ) ) ;
61
56
} else {
62
- let mut map = OrderMap :: with_capacity ( 1 ) ;
63
- map. insert ( field. name ( ) . into ( ) , value. into ( ) ) ;
64
- self . log_record . attributes = Some ( map) ;
57
+ let vec = vec ! [ ( field. name( ) . into( ) , value. into( ) ) ] ;
58
+ self . log_record . attributes = Some ( vec) ;
65
59
}
66
60
}
67
61
0 commit comments