diff --git a/src/format.rs b/src/format.rs index 1de27d2..8fdf82b 100644 --- a/src/format.rs +++ b/src/format.rs @@ -222,6 +222,7 @@ impl Buffers { pub struct FmtEvent<'a> { pub bufs: &'a mut Buffers, + pub lines: bool, } impl<'a> Visit for FmtEvent<'a> { @@ -235,7 +236,12 @@ impl<'a> Visit for FmtEvent<'a> { #[cfg(feature = "tracing-log")] name if name.starts_with("log.") => {} name => { - write!(buf, "\n {}={:?}", name, value).unwrap(); + if self.lines { + write!(buf, "\n ").unwrap() + } else { + write!(buf, ", ").unwrap() + } + write!(buf, "{}={:?}", name, value).unwrap(); } } } diff --git a/src/lib.rs b/src/lib.rs index 18e7e23..a4fd2b5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -212,16 +212,18 @@ where V: fmt::Display + 'a, { let mut kvs = kvs.into_iter(); - let nl = if self.config.bracketed_fields { - "" + let (nl, first) = if self.config.bracketed_fields { + ("", "") + } else if self.config.indent_lines { + ("\n ", "\n ") } else { - "\n " + (", ", " ") }; if let Some((k, v)) = kvs.next() { if k == "message" { write!(buf, " {}", v)?; } else { - write!(buf, "{nl}{}={}", k, v)?; + write!(buf, "{first}{}={}", k, v)?; } } for (k, v) in kvs { @@ -412,7 +414,10 @@ where .expect("Unable to write to buffer"); } - let mut visitor = FmtEvent { bufs }; + let mut visitor = FmtEvent { + bufs, + lines: self.config.indent_lines, + }; event.record(&mut visitor); visitor .bufs