Skip to content

Commit 3de3229

Browse files
committed
Remove brackets and message field name from rendered message
1 parent c46446b commit 3de3229

File tree

3 files changed

+56
-25
lines changed

3 files changed

+56
-25
lines changed

examples/basic.rs

+11-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use tracing::{debug, info, instrument, span, warn, Level};
1+
use tracing::{debug, error, info, instrument, span, warn, Level};
22
use tracing_subscriber::{layer::SubscriberExt, registry::Registry};
33
use tracing_tree::HierarchicalLayer;
44

@@ -34,6 +34,16 @@ fn main() {
3434
std::thread::sleep(std::time::Duration::from_millis(300));
3535
debug!("connected");
3636
});
37+
let peer3 = span!(
38+
Level::TRACE,
39+
"foomp",
40+
normal_var = 43,
41+
"{} <- format string",
42+
42
43+
);
44+
peer3.in_scope(|| {
45+
error!("hello");
46+
});
3747
peer1.in_scope(|| {
3848
warn!(algo = "xor", "weak encryption requested");
3949
std::thread::sleep(std::time::Duration::from_millis(300));

src/format.rs

+10
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ pub struct Config {
4242
pub verbose_entry: bool,
4343
/// Whether to print the current span before exiting it.
4444
pub verbose_exit: bool,
45+
/// Whether to print squiggly brackets (`{}`) around the list of fields in a span.
46+
pub bracketed_fields: bool,
4547
}
4648

4749
impl Config {
@@ -92,6 +94,13 @@ impl Config {
9294
}
9395
}
9496

97+
pub fn with_bracketed_fields(self, bracketed_fields: bool) -> Self {
98+
Self {
99+
bracketed_fields,
100+
..self
101+
}
102+
}
103+
95104
pub(crate) fn prefix(&self) -> String {
96105
let mut buf = String::new();
97106
if self.render_thread_ids {
@@ -127,6 +136,7 @@ impl Default for Config {
127136
wraparound: usize::max_value(),
128137
verbose_entry: false,
129138
verbose_exit: false,
139+
bracketed_fields: false,
130140
}
131141
}
132142
}

src/lib.rs

+35-24
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,15 @@ where
169169
}
170170
}
171171

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+
172181
fn styled(&self, style: Style, text: impl AsRef<str>) -> String {
173182
if self.config.ansi {
174183
style.paint(text.as_ref()).to_string()
@@ -177,23 +186,21 @@ where
177186
}
178187
}
179188

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
186190
where
187-
I: IntoIterator<Item = (K, V)>,
188-
K: AsRef<str> + 'a,
191+
I: IntoIterator<Item = (&'a str, V)>,
189192
V: fmt::Display + 'a,
190193
{
191194
let mut kvs = kvs.into_iter();
192195
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+
}
194201
}
195202
for (k, v) in kvs {
196-
write!(buf, ", {}={}", k.as_ref(), v)?;
203+
write!(buf, ", {}={}", k, v)?;
197204
}
198205
Ok(())
199206
}
@@ -234,24 +241,28 @@ where
234241

235242
write!(
236243
current_buf,
237-
"{name}",
244+
"{name} ",
238245
name = self.styled(Style::new().fg(Color::Green).bold(), span.metadata().name())
239246
)
240247
.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+
)
248254
.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+
}
255266

256267
bufs.indent_current(indent, &self.config, style);
257268
let writer = self.make_writer.make_writer();

0 commit comments

Comments
 (0)