@@ -150,12 +150,27 @@ where
150
150
S : Subscriber + for < ' a > LookupSpan < ' a > ,
151
151
{
152
152
let ( message, visitor) = extract_event_data_with_context ( event, ctx. into ( ) ) ;
153
+
154
+ let FieldVisitor {
155
+ exceptions,
156
+ mut json_values,
157
+ } = visitor;
158
+
159
+ let errors = exceptions
160
+ . iter ( )
161
+ . rev ( )
162
+ . filter_map ( |x| x. value . as_ref ( ) . map ( |v| format ! ( "{}: {}" , x. ty, * v) ) )
163
+ . collect :: < Vec < String > > ( ) ;
164
+ if !errors. is_empty ( ) {
165
+ json_values. insert ( "errors" . to_owned ( ) , errors. into ( ) ) ;
166
+ }
167
+
153
168
Breadcrumb {
154
169
category : Some ( event. metadata ( ) . target ( ) . to_owned ( ) ) ,
155
170
ty : "log" . into ( ) ,
156
171
level : convert_tracing_level ( event. metadata ( ) . level ( ) ) ,
157
172
message,
158
- data : visitor . json_values ,
173
+ data : json_values,
159
174
..Default :: default ( )
160
175
}
161
176
}
@@ -217,31 +232,11 @@ fn contexts_from_event(
217
232
context
218
233
}
219
234
220
- /// Creates an [`Event`] from a given [`tracing_core::Event`]
235
+ /// Creates an [`Event`] (possibly carrying an exception) from a given [`tracing_core::Event`]
221
236
pub fn event_from_event < ' context , S > (
222
237
event : & tracing_core:: Event ,
223
238
ctx : impl Into < Option < Context < ' context , S > > > ,
224
239
) -> Event < ' static >
225
- where
226
- S : Subscriber + for < ' a > LookupSpan < ' a > ,
227
- {
228
- let ( message, mut visitor) = extract_event_data_with_context ( event, ctx. into ( ) ) ;
229
-
230
- Event {
231
- logger : Some ( event. metadata ( ) . target ( ) . to_owned ( ) ) ,
232
- level : convert_tracing_level ( event. metadata ( ) . level ( ) ) ,
233
- message,
234
- tags : tags_from_event ( & mut visitor. json_values ) ,
235
- contexts : contexts_from_event ( event, visitor. json_values ) ,
236
- ..Default :: default ( )
237
- }
238
- }
239
-
240
- /// Creates an exception [`Event`] from a given [`tracing_core::Event`]
241
- pub fn exception_from_event < ' context , S > (
242
- event : & tracing_core:: Event ,
243
- ctx : impl Into < Option < Context < ' context , S > > > ,
244
- ) -> Event < ' static >
245
240
where
246
241
S : Subscriber + for < ' a > LookupSpan < ' a > ,
247
242
{
0 commit comments