@@ -169,6 +169,15 @@ where
169
169
}
170
170
}
171
171
172
+ /// Whether to print `{}` around the fields when printing a span.
173
+ /// This can help visually distinguish fields from the rest of the message.
174
+ pub fn with_bracketed_fields ( self , bracketed_fields : bool ) -> Self {
175
+ Self {
176
+ config : self . config . with_bracketed_fields ( bracketed_fields) ,
177
+ ..self
178
+ }
179
+ }
180
+
172
181
fn styled ( & self , style : Style , text : impl AsRef < str > ) -> String {
173
182
if self . config . ansi {
174
183
style. paint ( text. as_ref ( ) ) . to_string ( )
@@ -177,23 +186,21 @@ where
177
186
}
178
187
}
179
188
180
- fn print_kvs < ' a , I , K , V > (
181
- & self ,
182
- buf : & mut impl fmt:: Write ,
183
- kvs : I ,
184
- leading : & str ,
185
- ) -> fmt:: Result
189
+ fn print_kvs < ' a , I , V > ( & self , buf : & mut impl fmt:: Write , kvs : I ) -> fmt:: Result
186
190
where
187
- I : IntoIterator < Item = ( K , V ) > ,
188
- K : AsRef < str > + ' a ,
191
+ I : IntoIterator < Item = ( & ' a str , V ) > ,
189
192
V : fmt:: Display + ' a ,
190
193
{
191
194
let mut kvs = kvs. into_iter ( ) ;
192
195
if let Some ( ( k, v) ) = kvs. next ( ) {
193
- write ! ( buf, "{}{}={}" , leading, k. as_ref( ) , v) ?;
196
+ if k == "message" {
197
+ write ! ( buf, "{}" , v) ?;
198
+ } else {
199
+ write ! ( buf, "{}={}" , k, v) ?;
200
+ }
194
201
}
195
202
for ( k, v) in kvs {
196
- write ! ( buf, ", {}={}" , k. as_ref ( ) , v) ?;
203
+ write ! ( buf, ", {}={}" , k, v) ?;
197
204
}
198
205
Ok ( ( ) )
199
206
}
@@ -234,24 +241,28 @@ where
234
241
235
242
write ! (
236
243
current_buf,
237
- "{name}" ,
244
+ "{name} " ,
238
245
name = self . styled( Style :: new( ) . fg( Color :: Green ) . bold( ) , span. metadata( ) . name( ) )
239
246
)
240
247
. unwrap ( ) ;
241
- write ! (
242
- current_buf,
243
- "{}" ,
244
- self . styled( Style :: new( ) . fg( Color :: Green ) . bold( ) , "{" ) // Style::new().fg(Color::Green).dimmed().paint("{")
245
- )
246
- . unwrap ( ) ;
247
- self . print_kvs ( & mut current_buf, data. kvs . iter ( ) . map ( |( k, v) | ( k, v) ) , "" )
248
+ if self . config . bracketed_fields {
249
+ write ! (
250
+ current_buf,
251
+ "{}" ,
252
+ self . styled( Style :: new( ) . fg( Color :: Green ) . bold( ) , "{" ) // Style::new().fg(Color::Green).dimmed().paint("{")
253
+ )
248
254
. unwrap ( ) ;
249
- write ! (
250
- current_buf,
251
- "{}" ,
252
- self . styled( Style :: new( ) . fg( Color :: Green ) . bold( ) , "}" ) // Style::new().dimmed().paint("}")
253
- )
254
- . unwrap ( ) ;
255
+ }
256
+ self . print_kvs ( & mut current_buf, data. kvs . iter ( ) . map ( |( k, v) | ( * k, v) ) )
257
+ . unwrap ( ) ;
258
+ if self . config . bracketed_fields {
259
+ write ! (
260
+ current_buf,
261
+ "{}" ,
262
+ self . styled( Style :: new( ) . fg( Color :: Green ) . bold( ) , "}" ) // Style::new().dimmed().paint("}")
263
+ )
264
+ . unwrap ( ) ;
265
+ }
255
266
256
267
bufs. indent_current ( indent, & self . config , style) ;
257
268
let writer = self . make_writer . make_writer ( ) ;
0 commit comments