From a3ad3cbd2cbb377c796567cce340c58ee3b19d57 Mon Sep 17 00:00:00 2001 From: Oli Scherer Date: Mon, 22 May 2023 14:41:55 +0000 Subject: [PATCH 1/5] Put event fields on their own lines in line-rendering mode --- examples/basic.stdout | 15 ++++++++++----- examples/basic_non_verbose.stdout | 15 ++++++++++----- examples/basic_verbose_entry.stdout | 15 ++++++++++----- examples/basic_verbose_exit.stdout | 15 ++++++++++----- examples/concurrent.stdout | 16 ++++++++++++---- examples/concurrent_verbose.stdout | 16 ++++++++++++---- examples/deferred.stdout | 21 ++++++++++++++------- examples/no-indent.stdout | 15 ++++++++++----- examples/quiet.stdout | 15 ++++++++++----- src/format.rs | 19 +++++++++++++++++-- 10 files changed, 115 insertions(+), 47 deletions(-) diff --git a/examples/basic.stdout b/examples/basic.stdout index 24f7fdf..f6bf721 100644 --- a/examples/basic.stdout +++ b/examples/basic.stdout @@ -6,7 +6,8 @@ 1:main └┐basic::server host="localhost", port=8080 1:main └┐basic::conn peer_addr="82.9.9.9", port=42381 1:main ├─ DEBUG basic connected -1:main ├─ DEBUG basic message received, length=2 +1:main ├─┬─ DEBUG basic message received +1:main │ └─ length=2 1:main ┌┘basic::conn peer_addr="82.9.9.9", port=42381 1:main ┌┘basic::server host="localhost", port=8080 1:main └┐basic::server host="localhost", port=8080 @@ -21,15 +22,19 @@ 1:main ┌┘basic::server host="localhost", port=8080 1:main └┐basic::server host="localhost", port=8080 1:main └┐basic::conn peer_addr="82.9.9.9", port=42381 -1:main ├─ WARN basic weak encryption requested, algo="xor" -1:main ├─ DEBUG basic response sent, length=8 +1:main ├─┬─ WARN basic weak encryption requested +1:main │ └─ algo="xor" +1:main ├─┬─ DEBUG basic response sent +1:main │ └─ length=8 1:main ├─ DEBUG basic disconnected 1:main ┌┘basic::conn peer_addr="82.9.9.9", port=42381 1:main ┌┘basic::server host="localhost", port=8080 1:main └┐basic::server host="localhost", port=8080 1:main └┐basic::conn peer_addr="8.8.8.8", port=18230 -1:main ├─ DEBUG basic message received, length=5 -1:main ├─ DEBUG basic response sent, length=8 +1:main ├─┬─ DEBUG basic message received +1:main │ └─ length=5 +1:main ├─┬─ DEBUG basic response sent +1:main │ └─ length=8 1:main ├─ DEBUG basic disconnected 1:main ┌┘basic::conn peer_addr="8.8.8.8", port=18230 1:main ┌┘basic::server host="localhost", port=8080 diff --git a/examples/basic_non_verbose.stdout b/examples/basic_non_verbose.stdout index 0a02bbc..6647eb8 100644 --- a/examples/basic_non_verbose.stdout +++ b/examples/basic_non_verbose.stdout @@ -4,7 +4,8 @@ 1:main ├─ INFO basic_non_verbose listening 1:main └─┐basic_non_verbose::conn peer_addr="82.9.9.9", port=42381 1:main ├─ DEBUG basic_non_verbose connected -1:main ├─ DEBUG basic_non_verbose message received, length=2 +1:main ├─┬─ DEBUG basic_non_verbose message received +1:main │ └─ length=2 1:main ┌─┘ 1:main └─┐basic_non_verbose::conn peer_addr="8.8.8.8", port=18230 1:main ├─ DEBUG basic_non_verbose connected @@ -13,13 +14,17 @@ 1:main ├─ ERROR basic_non_verbose hello 1:main ┌─┘ 1:main └─┐basic_non_verbose::conn peer_addr="82.9.9.9", port=42381 -1:main ├─ WARN basic_non_verbose weak encryption requested, algo="xor" -1:main ├─ DEBUG basic_non_verbose response sent, length=8 +1:main ├─┬─ WARN basic_non_verbose weak encryption requested +1:main │ └─ algo="xor" +1:main ├─┬─ DEBUG basic_non_verbose response sent +1:main │ └─ length=8 1:main ├─ DEBUG basic_non_verbose disconnected 1:main ┌─┘ 1:main └─┐basic_non_verbose::conn peer_addr="8.8.8.8", port=18230 -1:main ├─ DEBUG basic_non_verbose message received, length=5 -1:main ├─ DEBUG basic_non_verbose response sent, length=8 +1:main ├─┬─ DEBUG basic_non_verbose message received +1:main │ └─ length=5 +1:main ├─┬─ DEBUG basic_non_verbose response sent +1:main │ └─ length=8 1:main ├─ DEBUG basic_non_verbose disconnected 1:main ┌─┘ 1:main ├─ WARN basic_non_verbose internal error diff --git a/examples/basic_verbose_entry.stdout b/examples/basic_verbose_entry.stdout index f85badf..44b0880 100644 --- a/examples/basic_verbose_entry.stdout +++ b/examples/basic_verbose_entry.stdout @@ -6,7 +6,8 @@ 1:main └┐basic_verbose_entry::server host="localhost", port=8080 1:main └┐basic_verbose_entry::conn peer_addr="82.9.9.9", port=42381 1:main ├─ DEBUG basic_verbose_entry connected -1:main ├─ DEBUG basic_verbose_entry message received, length=2 +1:main ├─┬─ DEBUG basic_verbose_entry message received +1:main │ └─ length=2 1:main ┌─┘ 1:main └┐basic_verbose_entry::server host="localhost", port=8080 1:main └┐basic_verbose_entry::conn peer_addr="8.8.8.8", port=18230 @@ -18,14 +19,18 @@ 1:main ┌─┘ 1:main └┐basic_verbose_entry::server host="localhost", port=8080 1:main └┐basic_verbose_entry::conn peer_addr="82.9.9.9", port=42381 -1:main ├─ WARN basic_verbose_entry weak encryption requested, algo="xor" -1:main ├─ DEBUG basic_verbose_entry response sent, length=8 +1:main ├─┬─ WARN basic_verbose_entry weak encryption requested +1:main │ └─ algo="xor" +1:main ├─┬─ DEBUG basic_verbose_entry response sent +1:main │ └─ length=8 1:main ├─ DEBUG basic_verbose_entry disconnected 1:main ┌─┘ 1:main └┐basic_verbose_entry::server host="localhost", port=8080 1:main └┐basic_verbose_entry::conn peer_addr="8.8.8.8", port=18230 -1:main ├─ DEBUG basic_verbose_entry message received, length=5 -1:main ├─ DEBUG basic_verbose_entry response sent, length=8 +1:main ├─┬─ DEBUG basic_verbose_entry message received +1:main │ └─ length=5 +1:main ├─┬─ DEBUG basic_verbose_entry response sent +1:main │ └─ length=8 1:main ├─ DEBUG basic_verbose_entry disconnected 1:main ┌─┘ 1:main ├─ WARN basic_verbose_entry internal error diff --git a/examples/basic_verbose_exit.stdout b/examples/basic_verbose_exit.stdout index fbfada3..79a6240 100644 --- a/examples/basic_verbose_exit.stdout +++ b/examples/basic_verbose_exit.stdout @@ -4,7 +4,8 @@ 1:main ├─ INFO basic_verbose_exit listening 1:main └─┐basic_verbose_exit::conn peer_addr="82.9.9.9", port=42381 1:main ├─ DEBUG basic_verbose_exit connected -1:main ├─ DEBUG basic_verbose_exit message received, length=2 +1:main ├─┬─ DEBUG basic_verbose_exit message received +1:main │ └─ length=2 1:main ┌┘basic_verbose_exit::conn peer_addr="82.9.9.9", port=42381 1:main ┌┘basic_verbose_exit::server host="localhost", port=8080 1:main └─┐basic_verbose_exit::conn peer_addr="8.8.8.8", port=18230 @@ -16,14 +17,18 @@ 1:main ┌┘basic_verbose_exit::foomp 42 <- format string, normal_var=43 1:main ┌┘basic_verbose_exit::server host="localhost", port=8080 1:main └─┐basic_verbose_exit::conn peer_addr="82.9.9.9", port=42381 -1:main ├─ WARN basic_verbose_exit weak encryption requested, algo="xor" -1:main ├─ DEBUG basic_verbose_exit response sent, length=8 +1:main ├─┬─ WARN basic_verbose_exit weak encryption requested +1:main │ └─ algo="xor" +1:main ├─┬─ DEBUG basic_verbose_exit response sent +1:main │ └─ length=8 1:main ├─ DEBUG basic_verbose_exit disconnected 1:main ┌┘basic_verbose_exit::conn peer_addr="82.9.9.9", port=42381 1:main ┌┘basic_verbose_exit::server host="localhost", port=8080 1:main └─┐basic_verbose_exit::conn peer_addr="8.8.8.8", port=18230 -1:main ├─ DEBUG basic_verbose_exit message received, length=5 -1:main ├─ DEBUG basic_verbose_exit response sent, length=8 +1:main ├─┬─ DEBUG basic_verbose_exit message received +1:main │ └─ length=5 +1:main ├─┬─ DEBUG basic_verbose_exit response sent +1:main │ └─ length=8 1:main ├─ DEBUG basic_verbose_exit disconnected 1:main ┌┘basic_verbose_exit::conn peer_addr="8.8.8.8", port=18230 1:main ┌┘basic_verbose_exit::server host="localhost", port=8080 diff --git a/examples/concurrent.stdout b/examples/concurrent.stdout index 6429b68..201e2fd 100644 --- a/examples/concurrent.stdout +++ b/examples/concurrent.stdout @@ -5,12 +5,20 @@ 1:main ├─── DEBUG concurrent starting countdowns 1:main └───┐concurrent::countdowns 1:main └───┐concurrent::countdown_a -1:main ├─── DEBUG concurrent polling countdown, label="a", count=3 +1:main ├───┬─── DEBUG concurrent polling countdown +1:main │ ├─ label="a" +1:main │ └─ count=3 1:main └───┐concurrent::countdown_b -1:main ├─── DEBUG concurrent polling countdown, label="b", count=5 -1:main ├─── DEBUG concurrent polling countdown, label="b", count=4 +1:main ├───┬─── DEBUG concurrent polling countdown +1:main │ ├─ label="b" +1:main │ └─ count=5 +1:main ├───┬─── DEBUG concurrent polling countdown +1:main │ ├─ label="b" +1:main │ └─ count=4 1:main └───┐concurrent::countdown_a -1:main ├─── DEBUG concurrent polling countdown, label="a", count=2 +1:main ├───┬─── DEBUG concurrent polling countdown +1:main │ ├─ label="a" +1:main │ └─ count=2 1:main └───┐concurrent::conn peer_addr="82.9.9.9", port=42381 1:main ├─── WARN concurrent peer1 warning 1:main └───┐concurrent::countdowns diff --git a/examples/concurrent_verbose.stdout b/examples/concurrent_verbose.stdout index d2ea058..71e5196 100644 --- a/examples/concurrent_verbose.stdout +++ b/examples/concurrent_verbose.stdout @@ -6,14 +6,22 @@ 1:main └─┐concurrent_verbose::server host="localhost", port=8080 1:main └─┐concurrent_verbose::countdowns 1:main └───┐concurrent_verbose::countdown_a -1:main ├─── DEBUG concurrent_verbose polling countdown, label="a", count=3 +1:main ├───┬─── DEBUG concurrent_verbose polling countdown +1:main │ ├─ label="a" +1:main │ └─ count=3 1:main └─┐concurrent_verbose::countdowns 1:main └─┐concurrent_verbose::countdown_b -1:main ├─── DEBUG concurrent_verbose polling countdown, label="b", count=5 -1:main ├─── DEBUG concurrent_verbose polling countdown, label="b", count=4 +1:main ├───┬─── DEBUG concurrent_verbose polling countdown +1:main │ ├─ label="b" +1:main │ └─ count=5 +1:main ├───┬─── DEBUG concurrent_verbose polling countdown +1:main │ ├─ label="b" +1:main │ └─ count=4 1:main └─┐concurrent_verbose::countdowns 1:main └─┐concurrent_verbose::countdown_a -1:main ├─── DEBUG concurrent_verbose polling countdown, label="a", count=2 +1:main ├───┬─── DEBUG concurrent_verbose polling countdown +1:main │ ├─ label="a" +1:main │ └─ count=2 1:main └─┐concurrent_verbose::server host="localhost", port=8080 1:main └─┐concurrent_verbose::conn peer_addr="82.9.9.9", port=42381 1:main ├─── WARN concurrent_verbose peer1 warning diff --git a/examples/deferred.stdout b/examples/deferred.stdout index e5335b9..af522f6 100644 --- a/examples/deferred.stdout +++ b/examples/deferred.stdout @@ -7,13 +7,16 @@ 1:main └┐pre_open: deferred::server host="localhost", port=8080 1:main └┐open(v): deferred::connections 1:main └─┐open: deferred::conn peer_addr="82.9.9.9", port=42381 -1:main ├─ DEBUG deferred connected, peer="peer1" -1:main ├─ DEBUG deferred message received, length=2 +1:main ├─┬─ DEBUG deferred connected +1:main │ └─ peer="peer1" +1:main ├─┬─ DEBUG deferred message received +1:main │ └─ length=2 1:main ┌┘close(v): deferred::conn peer_addr="82.9.9.9", port=42381 1:main ┌┘post_close: deferred::connections 1:main └┐pre_open: deferred::connections 1:main └┐open(v): deferred::conn peer_addr="8.8.8.8", port=18230 -1:main ├─ DEBUG deferred connected, peer="peer3" +1:main ├─┬─ DEBUG deferred connected +1:main │ └─ peer="peer3" 1:main ┌┘close(v): deferred::conn peer_addr="8.8.8.8", port=18230 1:main ┌┘post_close: deferred::connections 1:main └┐pre_open: deferred::connections @@ -23,15 +26,19 @@ 1:main ┌┘post_close: deferred::connections 1:main └┐pre_open: deferred::connections 1:main └┐open(v): deferred::conn peer_addr="82.9.9.9", port=42381 -1:main ├─ WARN deferred weak encryption requested, algo="xor" -1:main ├─ DEBUG deferred response sent, length=8 +1:main ├─┬─ WARN deferred weak encryption requested +1:main │ └─ algo="xor" +1:main ├─┬─ DEBUG deferred response sent +1:main │ └─ length=8 1:main ├─ DEBUG deferred disconnected 1:main ┌┘close(v): deferred::conn peer_addr="82.9.9.9", port=42381 1:main ┌┘post_close: deferred::connections 1:main └┐pre_open: deferred::connections 1:main └┐open(v): deferred::conn peer_addr="8.8.8.8", port=18230 -1:main ├─ DEBUG deferred message received, length=5 -1:main ├─ DEBUG deferred response sent, length=8 +1:main ├─┬─ DEBUG deferred message received +1:main │ └─ length=5 +1:main ├─┬─ DEBUG deferred response sent +1:main │ └─ length=8 1:main ├─ DEBUG deferred disconnected 1:main ┌┘close(v): deferred::conn peer_addr="8.8.8.8", port=18230 1:main ┌┘post_close: deferred::connections diff --git a/examples/no-indent.stdout b/examples/no-indent.stdout index 21bd888..e95d93c 100644 --- a/examples/no-indent.stdout +++ b/examples/no-indent.stdout @@ -4,18 +4,23 @@ 1:main INFO no_indent listening 1:main no_indent::conn peer_addr="82.9.9.9", port=42381 1:main DEBUG no_indent connected -1:main DEBUG no_indent message received, length=2 +1:main DEBUG no_indent message received +1:main length=2 1:main no_indent::conn peer_addr="8.8.8.8", port=18230 1:main DEBUG no_indent connected 1:main no_indent::foomp 42 <- format string, normal_var=43 1:main ERROR no_indent hello 1:main no_indent::conn peer_addr="82.9.9.9", port=42381 -1:main WARN no_indent weak encryption requested, algo="xor" -1:main DEBUG no_indent response sent, length=8 +1:main WARN no_indent weak encryption requested +1:main algo="xor" +1:main DEBUG no_indent response sent +1:main length=8 1:main DEBUG no_indent disconnected 1:main no_indent::conn peer_addr="8.8.8.8", port=18230 -1:main DEBUG no_indent message received, length=5 -1:main DEBUG no_indent response sent, length=8 +1:main DEBUG no_indent message received +1:main length=5 +1:main DEBUG no_indent response sent +1:main length=8 1:main DEBUG no_indent disconnected 1:main WARN no_indent internal error 1:main INFO no_indent exit diff --git a/examples/quiet.stdout b/examples/quiet.stdout index 5eddea7..a42bcc5 100644 --- a/examples/quiet.stdout +++ b/examples/quiet.stdout @@ -4,7 +4,8 @@ 1:main ├─ INFO quiet listening 1:main └─┐quiet::conn peer_addr="82.9.9.9", port=42381 1:main ├─ DEBUG quiet connected -1:main ├─ DEBUG quiet message received, length=2 +1:main ├─┬─ DEBUG quiet message received +1:main │ └─ length=2 1:main ┌─┘ 1:main └─┐quiet::conn peer_addr="8.8.8.8", port=18230 1:main ├─ DEBUG quiet connected @@ -13,13 +14,17 @@ 1:main ├─ ERROR quiet hello 1:main ┌─┘ 1:main └─┐quiet::conn peer_addr="82.9.9.9", port=42381 -1:main ├─ WARN quiet weak encryption requested, algo="xor" -1:main ├─ DEBUG quiet response sent, length=8 +1:main ├─┬─ WARN quiet weak encryption requested +1:main │ └─ algo="xor" +1:main ├─┬─ DEBUG quiet response sent +1:main │ └─ length=8 1:main ├─ DEBUG quiet disconnected 1:main ┌─┘ 1:main └─┐quiet::conn peer_addr="8.8.8.8", port=18230 -1:main ├─ DEBUG quiet message received, length=5 -1:main ├─ DEBUG quiet response sent, length=8 +1:main ├─┬─ DEBUG quiet message received +1:main │ └─ length=5 +1:main ├─┬─ DEBUG quiet response sent +1:main │ └─ length=8 1:main ├─ DEBUG quiet disconnected 1:main ┌─┘ 1:main ├─ WARN quiet internal error diff --git a/src/format.rs b/src/format.rs index 84b904b..00f65e8 100644 --- a/src/format.rs +++ b/src/format.rs @@ -14,6 +14,7 @@ pub(crate) const LINE_BRANCH: &str = "├"; pub(crate) const LINE_CLOSE: &str = "┘"; pub(crate) const LINE_CLOSE2: char = '┌'; pub(crate) const LINE_OPEN: &str = "┐"; +pub(crate) const ARGS_BRANCH: &str = "┬"; pub(crate) const LINE_OPEN2: char = '└'; #[derive(Debug, Copy, Clone)] @@ -277,7 +278,7 @@ pub struct FmtEvent<'a> { impl<'a> Visit for FmtEvent<'a> { fn record_debug(&mut self, field: &Field, value: &dyn fmt::Debug) { let buf = &mut self.bufs.current_buf; - let comma = if self.comma { "," } else { "" }; + let comma = if self.comma { "\n" } else { "" }; match field.name() { "message" => { write!(buf, "{} {:?}", comma, value).unwrap(); @@ -436,6 +437,12 @@ fn indent_block_with_lines( } SpanMode::Event => { buf.push_str(LINE_BRANCH); + if lines.len() > 1 { + for _ in 0..(indent_amount - 1) { + buf.push_str(LINE_HORIZ); + } + buf.push_str(ARGS_BRANCH); + } // add `indent_amount - 1` horizontal lines before the span/event for _ in 0..(indent_amount - 1) { @@ -457,8 +464,16 @@ fn indent_block_with_lines( } // add all of the actual content, with each line preceded by the indent string - for line in &lines[1..] { + for (i, line) in lines[1..].iter().enumerate() { buf.push_str(&s); + // Magic number `2` means "last entry" because we iterate from `1` + // and then restart indexing at `0`. + if i == lines.len() - 2 { + buf.push('└'); + } else { + buf.push_str(LINE_BRANCH); + } + buf.push_str(LINE_HORIZ); buf.push_str(line); buf.push('\n'); } From 7ccef1e64b6bf7726da43dda5a4407d09d0e2ffe Mon Sep 17 00:00:00 2001 From: Oli Scherer Date: Tue, 23 May 2023 11:25:07 +0000 Subject: [PATCH 2/5] Put span fields on their own lines in line rendering mode --- examples/basic.stdout | 66 ++++++++++++++-------- examples/basic_non_verbose.stdout | 18 ++++-- examples/basic_verbose_entry.stdout | 33 +++++++---- examples/basic_verbose_exit.stdout | 51 +++++++++++------ examples/concurrent.stdout | 6 +- examples/concurrent_verbose.stdout | 27 ++++++--- examples/deferred.stdout | 42 +++++++++----- examples/no-indent.stdout | 18 ++++-- examples/quiet.stdout | 18 ++++-- src/format.rs | 85 +++++++++++++++++++++++++++-- src/lib.rs | 2 +- 11 files changed, 267 insertions(+), 99 deletions(-) diff --git a/examples/basic.stdout b/examples/basic.stdout index f6bf721..f205bde 100644 --- a/examples/basic.stdout +++ b/examples/basic.stdout @@ -1,46 +1,68 @@ 1:main┐basic::hierarchical-example version=0.1 1:main└┐basic::hierarchical-example version=0.1 -1:main └┐basic::server host="localhost", port=8080 +1:main └┬─┬─ basic::server host="localhost" +1:main │ └─ port=8080 1:main ├─ INFO basic starting 1:main ├─ INFO basic listening -1:main └┐basic::server host="localhost", port=8080 -1:main └┐basic::conn peer_addr="82.9.9.9", port=42381 +1:main └┬─┬─ basic::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─ DEBUG basic connected 1:main ├─┬─ DEBUG basic message received 1:main │ └─ length=2 -1:main ┌┘basic::conn peer_addr="82.9.9.9", port=42381 -1:main ┌┘basic::server host="localhost", port=8080 -1:main └┐basic::server host="localhost", port=8080 -1:main └┐basic::conn peer_addr="8.8.8.8", port=18230 +1:main ┌┴┬─ basic::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 +1:main ┌┴┬─ basic::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ├─ DEBUG basic connected -1:main ┌┘basic::conn peer_addr="8.8.8.8", port=18230 -1:main ┌┘basic::server host="localhost", port=8080 -1:main └┐basic::server host="localhost", port=8080 -1:main └┐basic::foomp 42 <- format string, normal_var=43 +1:main ┌┴┬─ basic::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 +1:main ┌┴┬─ basic::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic::foomp 42 <- format string +1:main │ └─ normal_var=43 1:main ├─ ERROR basic hello -1:main ┌┘basic::foomp 42 <- format string, normal_var=43 -1:main ┌┘basic::server host="localhost", port=8080 -1:main └┐basic::server host="localhost", port=8080 -1:main └┐basic::conn peer_addr="82.9.9.9", port=42381 +1:main ┌┴┬─ basic::foomp 42 <- format string +1:main │ └─ normal_var=43 +1:main ┌┴┬─ basic::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─┬─ WARN basic weak encryption requested 1:main │ └─ algo="xor" 1:main ├─┬─ DEBUG basic response sent 1:main │ └─ length=8 1:main ├─ DEBUG basic disconnected -1:main ┌┘basic::conn peer_addr="82.9.9.9", port=42381 -1:main ┌┘basic::server host="localhost", port=8080 -1:main └┐basic::server host="localhost", port=8080 -1:main └┐basic::conn peer_addr="8.8.8.8", port=18230 +1:main ┌┴┬─ basic::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 +1:main ┌┴┬─ basic::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ├─┬─ DEBUG basic message received 1:main │ └─ length=5 1:main ├─┬─ DEBUG basic response sent 1:main │ └─ length=8 1:main ├─ DEBUG basic disconnected -1:main ┌┘basic::conn peer_addr="8.8.8.8", port=18230 -1:main ┌┘basic::server host="localhost", port=8080 +1:main ┌┴┬─ basic::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 +1:main ┌┴┬─ basic::server host="localhost" +1:main │ └─ port=8080 1:main ├─ WARN basic internal error 1:main ├─ ERROR basic this is a log message 1:main ├─ INFO basic exit -1:main ┌┘basic::server host="localhost", port=8080 +1:main ┌┴┬─ basic::server host="localhost" +1:main │ └─ port=8080 1:main┌┘basic::hierarchical-example version=0.1 1:main┘basic::hierarchical-example version=0.1 diff --git a/examples/basic_non_verbose.stdout b/examples/basic_non_verbose.stdout index 6647eb8..bbb4582 100644 --- a/examples/basic_non_verbose.stdout +++ b/examples/basic_non_verbose.stdout @@ -1,26 +1,32 @@ 1:main┐basic_non_verbose::hierarchical-example version=0.1 -1:main└─┐basic_non_verbose::server host="localhost", port=8080 +1:main└─┬─┬─ basic_non_verbose::server host="localhost" +1:main │ └─ port=8080 1:main ├─ INFO basic_non_verbose starting 1:main ├─ INFO basic_non_verbose listening -1:main └─┐basic_non_verbose::conn peer_addr="82.9.9.9", port=42381 +1:main └─┬─┬─ basic_non_verbose::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─ DEBUG basic_non_verbose connected 1:main ├─┬─ DEBUG basic_non_verbose message received 1:main │ └─ length=2 1:main ┌─┘ -1:main └─┐basic_non_verbose::conn peer_addr="8.8.8.8", port=18230 +1:main └─┬─┬─ basic_non_verbose::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ├─ DEBUG basic_non_verbose connected 1:main ┌─┘ -1:main └─┐basic_non_verbose::foomp 42 <- format string, normal_var=43 +1:main └─┬─┬─ basic_non_verbose::foomp 42 <- format string +1:main │ └─ normal_var=43 1:main ├─ ERROR basic_non_verbose hello 1:main ┌─┘ -1:main └─┐basic_non_verbose::conn peer_addr="82.9.9.9", port=42381 +1:main └─┬─┬─ basic_non_verbose::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─┬─ WARN basic_non_verbose weak encryption requested 1:main │ └─ algo="xor" 1:main ├─┬─ DEBUG basic_non_verbose response sent 1:main │ └─ length=8 1:main ├─ DEBUG basic_non_verbose disconnected 1:main ┌─┘ -1:main └─┐basic_non_verbose::conn peer_addr="8.8.8.8", port=18230 +1:main └─┬─┬─ basic_non_verbose::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ├─┬─ DEBUG basic_non_verbose message received 1:main │ └─ length=5 1:main ├─┬─ DEBUG basic_non_verbose response sent diff --git a/examples/basic_verbose_entry.stdout b/examples/basic_verbose_entry.stdout index 44b0880..04009cd 100644 --- a/examples/basic_verbose_entry.stdout +++ b/examples/basic_verbose_entry.stdout @@ -1,32 +1,43 @@ 1:main┐basic_verbose_entry::hierarchical-example version=0.1 1:main└┐basic_verbose_entry::hierarchical-example version=0.1 -1:main └┐basic_verbose_entry::server host="localhost", port=8080 +1:main └┬─┬─ basic_verbose_entry::server host="localhost" +1:main │ └─ port=8080 1:main ├─ INFO basic_verbose_entry starting 1:main ├─ INFO basic_verbose_entry listening -1:main └┐basic_verbose_entry::server host="localhost", port=8080 -1:main └┐basic_verbose_entry::conn peer_addr="82.9.9.9", port=42381 +1:main └┬─┬─ basic_verbose_entry::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic_verbose_entry::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─ DEBUG basic_verbose_entry connected 1:main ├─┬─ DEBUG basic_verbose_entry message received 1:main │ └─ length=2 1:main ┌─┘ -1:main └┐basic_verbose_entry::server host="localhost", port=8080 -1:main └┐basic_verbose_entry::conn peer_addr="8.8.8.8", port=18230 +1:main └┬─┬─ basic_verbose_entry::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic_verbose_entry::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ├─ DEBUG basic_verbose_entry connected 1:main ┌─┘ -1:main └┐basic_verbose_entry::server host="localhost", port=8080 -1:main └┐basic_verbose_entry::foomp 42 <- format string, normal_var=43 +1:main └┬─┬─ basic_verbose_entry::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic_verbose_entry::foomp 42 <- format string +1:main │ └─ normal_var=43 1:main ├─ ERROR basic_verbose_entry hello 1:main ┌─┘ -1:main └┐basic_verbose_entry::server host="localhost", port=8080 -1:main └┐basic_verbose_entry::conn peer_addr="82.9.9.9", port=42381 +1:main └┬─┬─ basic_verbose_entry::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic_verbose_entry::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─┬─ WARN basic_verbose_entry weak encryption requested 1:main │ └─ algo="xor" 1:main ├─┬─ DEBUG basic_verbose_entry response sent 1:main │ └─ length=8 1:main ├─ DEBUG basic_verbose_entry disconnected 1:main ┌─┘ -1:main └┐basic_verbose_entry::server host="localhost", port=8080 -1:main └┐basic_verbose_entry::conn peer_addr="8.8.8.8", port=18230 +1:main └┬─┬─ basic_verbose_entry::server host="localhost" +1:main │ └─ port=8080 +1:main └┬─┬─ basic_verbose_entry::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ├─┬─ DEBUG basic_verbose_entry message received 1:main │ └─ length=5 1:main ├─┬─ DEBUG basic_verbose_entry response sent diff --git a/examples/basic_verbose_exit.stdout b/examples/basic_verbose_exit.stdout index 79a6240..010e3e8 100644 --- a/examples/basic_verbose_exit.stdout +++ b/examples/basic_verbose_exit.stdout @@ -1,40 +1,57 @@ 1:main┐basic_verbose_exit::hierarchical-example version=0.1 -1:main└─┐basic_verbose_exit::server host="localhost", port=8080 +1:main└─┬─┬─ basic_verbose_exit::server host="localhost" +1:main │ └─ port=8080 1:main ├─ INFO basic_verbose_exit starting 1:main ├─ INFO basic_verbose_exit listening -1:main └─┐basic_verbose_exit::conn peer_addr="82.9.9.9", port=42381 +1:main └─┬─┬─ basic_verbose_exit::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─ DEBUG basic_verbose_exit connected 1:main ├─┬─ DEBUG basic_verbose_exit message received 1:main │ └─ length=2 -1:main ┌┘basic_verbose_exit::conn peer_addr="82.9.9.9", port=42381 -1:main ┌┘basic_verbose_exit::server host="localhost", port=8080 -1:main └─┐basic_verbose_exit::conn peer_addr="8.8.8.8", port=18230 +1:main ┌┴┬─ basic_verbose_exit::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 +1:main ┌┴┬─ basic_verbose_exit::server host="localhost" +1:main │ └─ port=8080 +1:main └─┬─┬─ basic_verbose_exit::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ├─ DEBUG basic_verbose_exit connected -1:main ┌┘basic_verbose_exit::conn peer_addr="8.8.8.8", port=18230 -1:main ┌┘basic_verbose_exit::server host="localhost", port=8080 -1:main └─┐basic_verbose_exit::foomp 42 <- format string, normal_var=43 +1:main ┌┴┬─ basic_verbose_exit::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 +1:main ┌┴┬─ basic_verbose_exit::server host="localhost" +1:main │ └─ port=8080 +1:main └─┬─┬─ basic_verbose_exit::foomp 42 <- format string +1:main │ └─ normal_var=43 1:main ├─ ERROR basic_verbose_exit hello -1:main ┌┘basic_verbose_exit::foomp 42 <- format string, normal_var=43 -1:main ┌┘basic_verbose_exit::server host="localhost", port=8080 -1:main └─┐basic_verbose_exit::conn peer_addr="82.9.9.9", port=42381 +1:main ┌┴┬─ basic_verbose_exit::foomp 42 <- format string +1:main │ └─ normal_var=43 +1:main ┌┴┬─ basic_verbose_exit::server host="localhost" +1:main │ └─ port=8080 +1:main └─┬─┬─ basic_verbose_exit::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─┬─ WARN basic_verbose_exit weak encryption requested 1:main │ └─ algo="xor" 1:main ├─┬─ DEBUG basic_verbose_exit response sent 1:main │ └─ length=8 1:main ├─ DEBUG basic_verbose_exit disconnected -1:main ┌┘basic_verbose_exit::conn peer_addr="82.9.9.9", port=42381 -1:main ┌┘basic_verbose_exit::server host="localhost", port=8080 -1:main └─┐basic_verbose_exit::conn peer_addr="8.8.8.8", port=18230 +1:main ┌┴┬─ basic_verbose_exit::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 +1:main ┌┴┬─ basic_verbose_exit::server host="localhost" +1:main │ └─ port=8080 +1:main └─┬─┬─ basic_verbose_exit::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ├─┬─ DEBUG basic_verbose_exit message received 1:main │ └─ length=5 1:main ├─┬─ DEBUG basic_verbose_exit response sent 1:main │ └─ length=8 1:main ├─ DEBUG basic_verbose_exit disconnected -1:main ┌┘basic_verbose_exit::conn peer_addr="8.8.8.8", port=18230 -1:main ┌┘basic_verbose_exit::server host="localhost", port=8080 +1:main ┌┴┬─ basic_verbose_exit::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 +1:main ┌┴┬─ basic_verbose_exit::server host="localhost" +1:main │ └─ port=8080 1:main ├─ WARN basic_verbose_exit internal error 1:main ├─ ERROR basic_verbose_exit this is a log message 1:main ├─ INFO basic_verbose_exit exit -1:main ┌┘basic_verbose_exit::server host="localhost", port=8080 +1:main ┌┴┬─ basic_verbose_exit::server host="localhost" +1:main │ └─ port=8080 1:main┌┘basic_verbose_exit::hierarchical-example version=0.1 1:main┘basic_verbose_exit::hierarchical-example version=0.1 diff --git a/examples/concurrent.stdout b/examples/concurrent.stdout index 201e2fd..6b3e145 100644 --- a/examples/concurrent.stdout +++ b/examples/concurrent.stdout @@ -1,5 +1,6 @@ 1:main┐concurrent::hierarchical-example version=0.1 -1:main└───┐concurrent::server host="localhost", port=8080 +1:main└───┬───┬─── concurrent::server host="localhost" +1:main │ └─ port=8080 1:main ├─── INFO concurrent starting 1:main ├─── INFO concurrent listening 1:main ├─── DEBUG concurrent starting countdowns @@ -19,7 +20,8 @@ 1:main ├───┬─── DEBUG concurrent polling countdown 1:main │ ├─ label="a" 1:main │ └─ count=2 -1:main └───┐concurrent::conn peer_addr="82.9.9.9", port=42381 +1:main └───┬───┬─── concurrent::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─── WARN concurrent peer1 warning 1:main └───┐concurrent::countdowns 1:main ├─── INFO concurrent finished polling countdowns diff --git a/examples/concurrent_verbose.stdout b/examples/concurrent_verbose.stdout index 71e5196..abbe609 100644 --- a/examples/concurrent_verbose.stdout +++ b/examples/concurrent_verbose.stdout @@ -1,9 +1,11 @@ 1:main┐concurrent_verbose::hierarchical-example version=0.1 -1:main└───┐concurrent_verbose::server host="localhost", port=8080 +1:main└───┬───┬─── concurrent_verbose::server host="localhost" +1:main │ └─ port=8080 1:main ├─── INFO concurrent_verbose starting 1:main ├─── INFO concurrent_verbose listening 1:main ├─── DEBUG concurrent_verbose starting countdowns -1:main └─┐concurrent_verbose::server host="localhost", port=8080 +1:main └─┬───┬─── concurrent_verbose::server host="localhost" +1:main │ └─ port=8080 1:main └─┐concurrent_verbose::countdowns 1:main └───┐concurrent_verbose::countdown_a 1:main ├───┬─── DEBUG concurrent_verbose polling countdown @@ -22,10 +24,13 @@ 1:main ├───┬─── DEBUG concurrent_verbose polling countdown 1:main │ ├─ label="a" 1:main │ └─ count=2 -1:main └─┐concurrent_verbose::server host="localhost", port=8080 -1:main └─┐concurrent_verbose::conn peer_addr="82.9.9.9", port=42381 +1:main └─┬───┬─── concurrent_verbose::server host="localhost" +1:main │ └─ port=8080 +1:main └─┬───┬─── concurrent_verbose::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─── WARN concurrent_verbose peer1 warning -1:main └─┐concurrent_verbose::server host="localhost", port=8080 +1:main └─┬───┬─── concurrent_verbose::server host="localhost" +1:main │ └─ port=8080 1:main └─┐concurrent_verbose::countdowns 1:main ├─── INFO concurrent_verbose finished polling countdowns 1:main ┌─┘concurrent_verbose::countdown_b @@ -33,11 +38,15 @@ 1:main ┌─┘concurrent_verbose::countdown_a 1:main ┌─┘concurrent_verbose::countdowns 1:main ┌─┘concurrent_verbose::countdowns -1:main ┌─┘concurrent_verbose::server host="localhost", port=8080 -1:main ┌─┘concurrent_verbose::conn peer_addr="82.9.9.9", port=42381 -1:main ┌─┘concurrent_verbose::server host="localhost", port=8080 +1:main ┌─┴──┬─── concurrent_verbose::server host="localhost" +1:main │ └─ port=8080 +1:main ┌─┴──┬─── concurrent_verbose::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 +1:main ┌─┴──┬─── concurrent_verbose::server host="localhost" +1:main │ └─ port=8080 1:main ├─── INFO concurrent_verbose all done! 1:main ├─── INFO concurrent_verbose exit -1:main ┌─┘concurrent_verbose::server host="localhost", port=8080 +1:main ┌─┴──┬─── concurrent_verbose::server host="localhost" +1:main │ └─ port=8080 1:main┌─┘concurrent_verbose::hierarchical-example version=0.1 1:main┘concurrent_verbose::hierarchical-example version=0.1 diff --git a/examples/deferred.stdout b/examples/deferred.stdout index af522f6..a76aa6f 100644 --- a/examples/deferred.stdout +++ b/examples/deferred.stdout @@ -1,52 +1,66 @@ -> This prints before the span open message 1:main┐open: deferred::hierarchical-example version=0.1 -1:main└─┐open: deferred::server host="localhost", port=8080 +1:main└─┬─┬─ open: deferred::server host="localhost" +1:main │ └─ port=8080 1:main ├─ INFO deferred starting 1:main ├─ INFO deferred listening -> Deferring two levels of spans -1:main └┐pre_open: deferred::server host="localhost", port=8080 +1:main └┬─┬─ pre_open: deferred::server host="localhost" +1:main │ └─ port=8080 1:main └┐open(v): deferred::connections -1:main └─┐open: deferred::conn peer_addr="82.9.9.9", port=42381 +1:main └─┬─┬─ open: deferred::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─┬─ DEBUG deferred connected 1:main │ └─ peer="peer1" 1:main ├─┬─ DEBUG deferred message received 1:main │ └─ length=2 -1:main ┌┘close(v): deferred::conn peer_addr="82.9.9.9", port=42381 +1:main ┌┴┬─ close(v): deferred::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ┌┘post_close: deferred::connections 1:main └┐pre_open: deferred::connections -1:main └┐open(v): deferred::conn peer_addr="8.8.8.8", port=18230 +1:main └┬─┬─ open(v): deferred::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ├─┬─ DEBUG deferred connected 1:main │ └─ peer="peer3" -1:main ┌┘close(v): deferred::conn peer_addr="8.8.8.8", port=18230 +1:main ┌┴┬─ close(v): deferred::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ┌┘post_close: deferred::connections 1:main └┐pre_open: deferred::connections -1:main └┐open(v): deferred::foomp 42 <- format string, normal_var=43 +1:main └┬─┬─ open(v): deferred::foomp 42 <- format string +1:main │ └─ normal_var=43 1:main ├─ ERROR deferred hello -1:main ┌┘close(v): deferred::foomp 42 <- format string, normal_var=43 +1:main ┌┴┬─ close(v): deferred::foomp 42 <- format string +1:main │ └─ normal_var=43 1:main ┌┘post_close: deferred::connections 1:main └┐pre_open: deferred::connections -1:main └┐open(v): deferred::conn peer_addr="82.9.9.9", port=42381 +1:main └┬─┬─ open(v): deferred::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─┬─ WARN deferred weak encryption requested 1:main │ └─ algo="xor" 1:main ├─┬─ DEBUG deferred response sent 1:main │ └─ length=8 1:main ├─ DEBUG deferred disconnected -1:main ┌┘close(v): deferred::conn peer_addr="82.9.9.9", port=42381 +1:main ┌┴┬─ close(v): deferred::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ┌┘post_close: deferred::connections 1:main └┐pre_open: deferred::connections -1:main └┐open(v): deferred::conn peer_addr="8.8.8.8", port=18230 +1:main └┬─┬─ open(v): deferred::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ├─┬─ DEBUG deferred message received 1:main │ └─ length=5 1:main ├─┬─ DEBUG deferred response sent 1:main │ └─ length=8 1:main ├─ DEBUG deferred disconnected -1:main ┌┘close(v): deferred::conn peer_addr="8.8.8.8", port=18230 +1:main ┌┴┬─ close(v): deferred::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ┌┘post_close: deferred::connections 1:main ┌┘close(v): deferred::connections -1:main ┌┘post_close: deferred::server host="localhost", port=8080 +1:main ┌┴┬─ post_close: deferred::server host="localhost" +1:main │ └─ port=8080 1:main ├─ WARN deferred internal error 1:main ├─ ERROR deferred this is a log message 1:main ├─ INFO deferred exit -1:main ┌┘close(v): deferred::server host="localhost", port=8080 +1:main ┌┴┬─ close(v): deferred::server host="localhost" +1:main │ └─ port=8080 1:main┌┘post_close: deferred::hierarchical-example version=0.1 1:main┘close(v): deferred::hierarchical-example version=0.1 diff --git a/examples/no-indent.stdout b/examples/no-indent.stdout index e95d93c..79a6f94 100644 --- a/examples/no-indent.stdout +++ b/examples/no-indent.stdout @@ -1,22 +1,28 @@ 1:main no_indent::hierarchical-example version=0.1 -1:main no_indent::server host="localhost", port=8080 +1:main no_indent::server host="localhost" +1:main port=8080 1:main INFO no_indent starting 1:main INFO no_indent listening -1:main no_indent::conn peer_addr="82.9.9.9", port=42381 +1:main no_indent::conn peer_addr="82.9.9.9" +1:main port=42381 1:main DEBUG no_indent connected 1:main DEBUG no_indent message received 1:main length=2 -1:main no_indent::conn peer_addr="8.8.8.8", port=18230 +1:main no_indent::conn peer_addr="8.8.8.8" +1:main port=18230 1:main DEBUG no_indent connected -1:main no_indent::foomp 42 <- format string, normal_var=43 +1:main no_indent::foomp 42 <- format string +1:main normal_var=43 1:main ERROR no_indent hello -1:main no_indent::conn peer_addr="82.9.9.9", port=42381 +1:main no_indent::conn peer_addr="82.9.9.9" +1:main port=42381 1:main WARN no_indent weak encryption requested 1:main algo="xor" 1:main DEBUG no_indent response sent 1:main length=8 1:main DEBUG no_indent disconnected -1:main no_indent::conn peer_addr="8.8.8.8", port=18230 +1:main no_indent::conn peer_addr="8.8.8.8" +1:main port=18230 1:main DEBUG no_indent message received 1:main length=5 1:main DEBUG no_indent response sent diff --git a/examples/quiet.stdout b/examples/quiet.stdout index a42bcc5..570bea5 100644 --- a/examples/quiet.stdout +++ b/examples/quiet.stdout @@ -1,26 +1,32 @@ 1:main┐quiet::hierarchical-example version=0.1 -1:main└─┐quiet::server host="localhost", port=8080 +1:main└─┬─┬─ quiet::server host="localhost" +1:main │ └─ port=8080 1:main ├─ INFO quiet starting 1:main ├─ INFO quiet listening -1:main └─┐quiet::conn peer_addr="82.9.9.9", port=42381 +1:main └─┬─┬─ quiet::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─ DEBUG quiet connected 1:main ├─┬─ DEBUG quiet message received 1:main │ └─ length=2 1:main ┌─┘ -1:main └─┐quiet::conn peer_addr="8.8.8.8", port=18230 +1:main └─┬─┬─ quiet::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ├─ DEBUG quiet connected 1:main ┌─┘ -1:main └─┐quiet::foomp 42 <- format string, normal_var=43 +1:main └─┬─┬─ quiet::foomp 42 <- format string +1:main │ └─ normal_var=43 1:main ├─ ERROR quiet hello 1:main ┌─┘ -1:main └─┐quiet::conn peer_addr="82.9.9.9", port=42381 +1:main └─┬─┬─ quiet::conn peer_addr="82.9.9.9" +1:main │ └─ port=42381 1:main ├─┬─ WARN quiet weak encryption requested 1:main │ └─ algo="xor" 1:main ├─┬─ DEBUG quiet response sent 1:main │ └─ length=8 1:main ├─ DEBUG quiet disconnected 1:main ┌─┘ -1:main └─┐quiet::conn peer_addr="8.8.8.8", port=18230 +1:main └─┬─┬─ quiet::conn peer_addr="8.8.8.8" +1:main │ └─ port=18230 1:main ├─┬─ DEBUG quiet message received 1:main │ └─ length=5 1:main ├─┬─ DEBUG quiet response sent diff --git a/src/format.rs b/src/format.rs index 00f65e8..457bb44 100644 --- a/src/format.rs +++ b/src/format.rs @@ -374,14 +374,44 @@ fn indent_block_with_lines( for _ in 1..(indent_amount / 2) { buf.push_str(LINE_HORIZ); } - buf.push_str(LINE_OPEN); + if lines.len() > 1 { + buf.push_str(ARGS_BRANCH); + for _ in 1..indent_amount { + buf.push_str(LINE_HORIZ); + } + buf.push_str(ARGS_BRANCH); + for _ in 1..indent_amount { + buf.push_str(LINE_HORIZ); + } + buf.push(' '); + for _ in 0..(indent_amount - 1) { + s.push(' '); + } + } else { + buf.push_str(LINE_OPEN); + } } SpanMode::Open { verbose: false } | SpanMode::Retrace { verbose: false } => { buf.push(LINE_OPEN2); for _ in 1..indent_amount { buf.push_str(LINE_HORIZ); } - buf.push_str(LINE_OPEN); + if lines.len() > 1 { + buf.push_str(ARGS_BRANCH); + for _ in 1..indent_amount { + buf.push_str(LINE_HORIZ); + } + buf.push_str(ARGS_BRANCH); + for _ in 1..indent_amount { + buf.push_str(LINE_HORIZ); + } + buf.push_str(" "); + for _ in 0..indent_amount { + s.push(' '); + } + } else { + buf.push_str(LINE_OPEN); + } } SpanMode::Open { verbose: true } | SpanMode::Retrace { verbose: true } => { buf.push(' '); @@ -397,7 +427,22 @@ fn indent_block_with_lines( } // We don't have the space for fancy rendering at single space indent. if indent_amount > 1 { - buf.push_str(LINE_OPEN); + if lines.len() > 1 { + buf.push_str(ARGS_BRANCH); + for _ in 1..indent_amount { + buf.push_str(LINE_HORIZ); + } + buf.push_str(ARGS_BRANCH); + for _ in 1..indent_amount { + buf.push_str(LINE_HORIZ); + } + buf.push_str(" "); + for _ in 0..indent_amount { + s.push(' '); + } + } else { + buf.push_str(LINE_OPEN); + } } else { buf.push(' '); } @@ -423,7 +468,22 @@ fn indent_block_with_lines( } // We don't have the space for fancy rendering at single space indent. if indent_amount > 1 { - buf.push_str(LINE_CLOSE); + if lines.len() > 1 { + buf.push('┴'); + for _ in 1..indent_amount - 1 { + buf.push_str(LINE_HORIZ); + } + buf.push('┬'); + for _ in 1..indent_amount { + buf.push_str(LINE_HORIZ); + } + buf.push_str(" "); + for _ in 0..indent_amount - 1 { + s.push(' '); + } + } else { + buf.push_str(LINE_CLOSE); + } } else { buf.push(' '); } @@ -433,7 +493,22 @@ fn indent_block_with_lines( for _ in 1..(indent_amount / 2) { buf.push_str(LINE_HORIZ); } - buf.push_str(LINE_CLOSE); + if lines.len() > 1 { + buf.push('┴'); + for _ in 1..indent_amount - 1 { + buf.push_str(LINE_HORIZ); + } + buf.push('┬'); + for _ in 1..indent_amount { + buf.push_str(LINE_HORIZ); + } + buf.push(' '); + for _ in 0..indent_amount - 2 { + s.push(' '); + } + } else { + buf.push_str(LINE_CLOSE); + } } SpanMode::Event => { buf.push_str(LINE_BRANCH); diff --git a/src/lib.rs b/src/lib.rs index 0f63430..30b5921 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -254,7 +254,7 @@ where } } for (k, v) in kvs { - write!(buf, ", {}={}", k, v)?; + write!(buf, "\n {}={}", k, v)?; } Ok(()) } From daf3593335abb7fbe778528fb408c184b7d56aa5 Mon Sep 17 00:00:00 2001 From: Oli Scherer Date: Tue, 23 May 2023 11:34:12 +0000 Subject: [PATCH 3/5] Put the first field on a new line, too --- examples/basic.stdout | 72 +++++++++++++++++++---------- examples/basic_non_verbose.stdout | 18 +++++--- examples/basic_verbose_entry.stdout | 36 ++++++++++----- examples/basic_verbose_exit.stdout | 54 ++++++++++++++-------- examples/concurrent.stdout | 19 ++++---- examples/concurrent_eager.stdout | 26 +++++++---- examples/concurrent_verbose.stdout | 60 ++++++++++++++---------- examples/deferred.stdout | 67 ++++++++++++++++----------- examples/no-indent.stdout | 18 +++++--- examples/quiet.stdout | 18 +++++--- examples/wraparound.stdout | 66 +++++++++++++++++--------- src/format.rs | 8 +--- src/lib.rs | 15 +++--- 13 files changed, 303 insertions(+), 174 deletions(-) diff --git a/examples/basic.stdout b/examples/basic.stdout index f205bde..aaa00af 100644 --- a/examples/basic.stdout +++ b/examples/basic.stdout @@ -1,68 +1,92 @@ -1:main┐basic::hierarchical-example version=0.1 -1:main└┐basic::hierarchical-example version=0.1 -1:main └┬─┬─ basic::server host="localhost" +1:main┐basic::hierarchical-example +1:main┐ version=0.1 +1:main└┬─┬─ basic::hierarchical-example +1:main │ └─ version=0.1 +1:main └┬─┬─ basic::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main ├─ INFO basic starting 1:main ├─ INFO basic listening -1:main └┬─┬─ basic::server host="localhost" +1:main └┬─┬─ basic::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┬─┬─ basic::conn peer_addr="82.9.9.9" +1:main └┬─┬─ basic::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─ DEBUG basic connected 1:main ├─┬─ DEBUG basic message received 1:main │ └─ length=2 -1:main ┌┴┬─ basic::conn peer_addr="82.9.9.9" +1:main ┌┴┬─ basic::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 -1:main ┌┴┬─ basic::server host="localhost" +1:main ┌┴┬─ basic::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┬─┬─ basic::server host="localhost" +1:main └┬─┬─ basic::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┬─┬─ basic::conn peer_addr="8.8.8.8" +1:main └┬─┬─ basic::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 1:main ├─ DEBUG basic connected -1:main ┌┴┬─ basic::conn peer_addr="8.8.8.8" +1:main ┌┴┬─ basic::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 -1:main ┌┴┬─ basic::server host="localhost" +1:main ┌┴┬─ basic::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┬─┬─ basic::server host="localhost" +1:main └┬─┬─ basic::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main └┬─┬─ basic::foomp 42 <- format string 1:main │ └─ normal_var=43 1:main ├─ ERROR basic hello 1:main ┌┴┬─ basic::foomp 42 <- format string 1:main │ └─ normal_var=43 -1:main ┌┴┬─ basic::server host="localhost" +1:main ┌┴┬─ basic::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┬─┬─ basic::server host="localhost" +1:main └┬─┬─ basic::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┬─┬─ basic::conn peer_addr="82.9.9.9" +1:main └┬─┬─ basic::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─┬─ WARN basic weak encryption requested 1:main │ └─ algo="xor" 1:main ├─┬─ DEBUG basic response sent 1:main │ └─ length=8 1:main ├─ DEBUG basic disconnected -1:main ┌┴┬─ basic::conn peer_addr="82.9.9.9" +1:main ┌┴┬─ basic::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 -1:main ┌┴┬─ basic::server host="localhost" +1:main ┌┴┬─ basic::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┬─┬─ basic::server host="localhost" +1:main └┬─┬─ basic::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┬─┬─ basic::conn peer_addr="8.8.8.8" +1:main └┬─┬─ basic::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 1:main ├─┬─ DEBUG basic message received 1:main │ └─ length=5 1:main ├─┬─ DEBUG basic response sent 1:main │ └─ length=8 1:main ├─ DEBUG basic disconnected -1:main ┌┴┬─ basic::conn peer_addr="8.8.8.8" +1:main ┌┴┬─ basic::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 -1:main ┌┴┬─ basic::server host="localhost" +1:main ┌┴┬─ basic::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main ├─ WARN basic internal error 1:main ├─ ERROR basic this is a log message 1:main ├─ INFO basic exit -1:main ┌┴┬─ basic::server host="localhost" +1:main ┌┴┬─ basic::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main┌┘basic::hierarchical-example version=0.1 -1:main┘basic::hierarchical-example version=0.1 +1:main┌┴┬─ basic::hierarchical-example +1:main│ └─ version=0.1 +1:main┘basic::hierarchical-example +1:main┘ version=0.1 diff --git a/examples/basic_non_verbose.stdout b/examples/basic_non_verbose.stdout index bbb4582..2ffcf6b 100644 --- a/examples/basic_non_verbose.stdout +++ b/examples/basic_non_verbose.stdout @@ -1,15 +1,19 @@ -1:main┐basic_non_verbose::hierarchical-example version=0.1 -1:main└─┬─┬─ basic_non_verbose::server host="localhost" +1:main┐basic_non_verbose::hierarchical-example +1:main┐ version=0.1 +1:main└─┬─┬─ basic_non_verbose::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main ├─ INFO basic_non_verbose starting 1:main ├─ INFO basic_non_verbose listening -1:main └─┬─┬─ basic_non_verbose::conn peer_addr="82.9.9.9" +1:main └─┬─┬─ basic_non_verbose::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─ DEBUG basic_non_verbose connected 1:main ├─┬─ DEBUG basic_non_verbose message received 1:main │ └─ length=2 1:main ┌─┘ -1:main └─┬─┬─ basic_non_verbose::conn peer_addr="8.8.8.8" +1:main └─┬─┬─ basic_non_verbose::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 1:main ├─ DEBUG basic_non_verbose connected 1:main ┌─┘ @@ -17,7 +21,8 @@ 1:main │ └─ normal_var=43 1:main ├─ ERROR basic_non_verbose hello 1:main ┌─┘ -1:main └─┬─┬─ basic_non_verbose::conn peer_addr="82.9.9.9" +1:main └─┬─┬─ basic_non_verbose::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─┬─ WARN basic_non_verbose weak encryption requested 1:main │ └─ algo="xor" @@ -25,7 +30,8 @@ 1:main │ └─ length=8 1:main ├─ DEBUG basic_non_verbose disconnected 1:main ┌─┘ -1:main └─┬─┬─ basic_non_verbose::conn peer_addr="8.8.8.8" +1:main └─┬─┬─ basic_non_verbose::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 1:main ├─┬─ DEBUG basic_non_verbose message received 1:main │ └─ length=5 diff --git a/examples/basic_verbose_entry.stdout b/examples/basic_verbose_entry.stdout index 04009cd..a72b176 100644 --- a/examples/basic_verbose_entry.stdout +++ b/examples/basic_verbose_entry.stdout @@ -1,32 +1,42 @@ -1:main┐basic_verbose_entry::hierarchical-example version=0.1 -1:main└┐basic_verbose_entry::hierarchical-example version=0.1 -1:main └┬─┬─ basic_verbose_entry::server host="localhost" +1:main┐basic_verbose_entry::hierarchical-example +1:main┐ version=0.1 +1:main└┬─┬─ basic_verbose_entry::hierarchical-example +1:main │ └─ version=0.1 +1:main └┬─┬─ basic_verbose_entry::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main ├─ INFO basic_verbose_entry starting 1:main ├─ INFO basic_verbose_entry listening -1:main └┬─┬─ basic_verbose_entry::server host="localhost" +1:main └┬─┬─ basic_verbose_entry::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┬─┬─ basic_verbose_entry::conn peer_addr="82.9.9.9" +1:main └┬─┬─ basic_verbose_entry::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─ DEBUG basic_verbose_entry connected 1:main ├─┬─ DEBUG basic_verbose_entry message received 1:main │ └─ length=2 1:main ┌─┘ -1:main └┬─┬─ basic_verbose_entry::server host="localhost" +1:main └┬─┬─ basic_verbose_entry::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┬─┬─ basic_verbose_entry::conn peer_addr="8.8.8.8" +1:main └┬─┬─ basic_verbose_entry::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 1:main ├─ DEBUG basic_verbose_entry connected 1:main ┌─┘ -1:main └┬─┬─ basic_verbose_entry::server host="localhost" +1:main └┬─┬─ basic_verbose_entry::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main └┬─┬─ basic_verbose_entry::foomp 42 <- format string 1:main │ └─ normal_var=43 1:main ├─ ERROR basic_verbose_entry hello 1:main ┌─┘ -1:main └┬─┬─ basic_verbose_entry::server host="localhost" +1:main └┬─┬─ basic_verbose_entry::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┬─┬─ basic_verbose_entry::conn peer_addr="82.9.9.9" +1:main └┬─┬─ basic_verbose_entry::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─┬─ WARN basic_verbose_entry weak encryption requested 1:main │ └─ algo="xor" @@ -34,9 +44,11 @@ 1:main │ └─ length=8 1:main ├─ DEBUG basic_verbose_entry disconnected 1:main ┌─┘ -1:main └┬─┬─ basic_verbose_entry::server host="localhost" +1:main └┬─┬─ basic_verbose_entry::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┬─┬─ basic_verbose_entry::conn peer_addr="8.8.8.8" +1:main └┬─┬─ basic_verbose_entry::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 1:main ├─┬─ DEBUG basic_verbose_entry message received 1:main │ └─ length=5 diff --git a/examples/basic_verbose_exit.stdout b/examples/basic_verbose_exit.stdout index 010e3e8..b839632 100644 --- a/examples/basic_verbose_exit.stdout +++ b/examples/basic_verbose_exit.stdout @@ -1,57 +1,75 @@ -1:main┐basic_verbose_exit::hierarchical-example version=0.1 -1:main└─┬─┬─ basic_verbose_exit::server host="localhost" +1:main┐basic_verbose_exit::hierarchical-example +1:main┐ version=0.1 +1:main└─┬─┬─ basic_verbose_exit::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main ├─ INFO basic_verbose_exit starting 1:main ├─ INFO basic_verbose_exit listening -1:main └─┬─┬─ basic_verbose_exit::conn peer_addr="82.9.9.9" +1:main └─┬─┬─ basic_verbose_exit::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─ DEBUG basic_verbose_exit connected 1:main ├─┬─ DEBUG basic_verbose_exit message received 1:main │ └─ length=2 -1:main ┌┴┬─ basic_verbose_exit::conn peer_addr="82.9.9.9" +1:main ┌┴┬─ basic_verbose_exit::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 -1:main ┌┴┬─ basic_verbose_exit::server host="localhost" +1:main ┌┴┬─ basic_verbose_exit::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └─┬─┬─ basic_verbose_exit::conn peer_addr="8.8.8.8" +1:main └─┬─┬─ basic_verbose_exit::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 1:main ├─ DEBUG basic_verbose_exit connected -1:main ┌┴┬─ basic_verbose_exit::conn peer_addr="8.8.8.8" +1:main ┌┴┬─ basic_verbose_exit::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 -1:main ┌┴┬─ basic_verbose_exit::server host="localhost" +1:main ┌┴┬─ basic_verbose_exit::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main └─┬─┬─ basic_verbose_exit::foomp 42 <- format string 1:main │ └─ normal_var=43 1:main ├─ ERROR basic_verbose_exit hello 1:main ┌┴┬─ basic_verbose_exit::foomp 42 <- format string 1:main │ └─ normal_var=43 -1:main ┌┴┬─ basic_verbose_exit::server host="localhost" +1:main ┌┴┬─ basic_verbose_exit::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └─┬─┬─ basic_verbose_exit::conn peer_addr="82.9.9.9" +1:main └─┬─┬─ basic_verbose_exit::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─┬─ WARN basic_verbose_exit weak encryption requested 1:main │ └─ algo="xor" 1:main ├─┬─ DEBUG basic_verbose_exit response sent 1:main │ └─ length=8 1:main ├─ DEBUG basic_verbose_exit disconnected -1:main ┌┴┬─ basic_verbose_exit::conn peer_addr="82.9.9.9" +1:main ┌┴┬─ basic_verbose_exit::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 -1:main ┌┴┬─ basic_verbose_exit::server host="localhost" +1:main ┌┴┬─ basic_verbose_exit::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └─┬─┬─ basic_verbose_exit::conn peer_addr="8.8.8.8" +1:main └─┬─┬─ basic_verbose_exit::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 1:main ├─┬─ DEBUG basic_verbose_exit message received 1:main │ └─ length=5 1:main ├─┬─ DEBUG basic_verbose_exit response sent 1:main │ └─ length=8 1:main ├─ DEBUG basic_verbose_exit disconnected -1:main ┌┴┬─ basic_verbose_exit::conn peer_addr="8.8.8.8" +1:main ┌┴┬─ basic_verbose_exit::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 -1:main ┌┴┬─ basic_verbose_exit::server host="localhost" +1:main ┌┴┬─ basic_verbose_exit::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main ├─ WARN basic_verbose_exit internal error 1:main ├─ ERROR basic_verbose_exit this is a log message 1:main ├─ INFO basic_verbose_exit exit -1:main ┌┴┬─ basic_verbose_exit::server host="localhost" +1:main ┌┴┬─ basic_verbose_exit::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main┌┘basic_verbose_exit::hierarchical-example version=0.1 -1:main┘basic_verbose_exit::hierarchical-example version=0.1 +1:main┌┴┬─ basic_verbose_exit::hierarchical-example +1:main│ └─ version=0.1 +1:main┘basic_verbose_exit::hierarchical-example +1:main┘ version=0.1 diff --git a/examples/concurrent.stdout b/examples/concurrent.stdout index 6b3e145..1d246d3 100644 --- a/examples/concurrent.stdout +++ b/examples/concurrent.stdout @@ -1,29 +1,32 @@ -1:main┐concurrent::hierarchical-example version=0.1 -1:main└───┬───┬─── concurrent::server host="localhost" +1:main┐concurrent::hierarchical-example +1:main┐ version=0.1 +1:main└───┬───┬─── concurrent::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main ├─── INFO concurrent starting 1:main ├─── INFO concurrent listening 1:main ├─── DEBUG concurrent starting countdowns -1:main └───┐concurrent::countdowns -1:main └───┐concurrent::countdown_a +1:main └───┐concurrent::countdowns +1:main └───┐concurrent::countdown_a 1:main ├───┬─── DEBUG concurrent polling countdown 1:main │ ├─ label="a" 1:main │ └─ count=3 -1:main └───┐concurrent::countdown_b +1:main └───┐concurrent::countdown_b 1:main ├───┬─── DEBUG concurrent polling countdown 1:main │ ├─ label="b" 1:main │ └─ count=5 1:main ├───┬─── DEBUG concurrent polling countdown 1:main │ ├─ label="b" 1:main │ └─ count=4 -1:main └───┐concurrent::countdown_a +1:main └───┐concurrent::countdown_a 1:main ├───┬─── DEBUG concurrent polling countdown 1:main │ ├─ label="a" 1:main │ └─ count=2 -1:main └───┬───┬─── concurrent::conn peer_addr="82.9.9.9" +1:main └───┬───┬─── concurrent::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─── WARN concurrent peer1 warning -1:main └───┐concurrent::countdowns +1:main └───┐concurrent::countdowns 1:main ├─── INFO concurrent finished polling countdowns 1:main ┌───┘ 1:main ┌───┘ diff --git a/examples/concurrent_eager.stdout b/examples/concurrent_eager.stdout index d8d9411..f4a3776 100644 --- a/examples/concurrent_eager.stdout +++ b/examples/concurrent_eager.stdout @@ -1,15 +1,21 @@ -1:main┐concurrent_eager::spawn_fut key="a" -1:main┐concurrent_eager::spawn_fut key="b" -1:main┐concurrent_eager::spawn_fut key="a" -1:main└───┐concurrent_eager::a -1:main┐concurrent_eager::spawn_fut key="b" -1:main└───┐concurrent_eager::b -1:main┐concurrent_eager::spawn_fut key="a" -1:main└───┐concurrent_eager::a +1:main┐concurrent_eager::spawn_fut +1:main┐ key="a" +1:main┐concurrent_eager::spawn_fut +1:main┐ key="b" +1:main┐concurrent_eager::spawn_fut +1:main┐ key="a" +1:main└───┐concurrent_eager::a +1:main┐concurrent_eager::spawn_fut +1:main┐ key="b" +1:main└───┐concurrent_eager::b +1:main┐concurrent_eager::spawn_fut +1:main┐ key="a" +1:main└───┐concurrent_eager::a 1:main ├─── INFO concurrent_eager a 1:main┌───┘ -1:main┐concurrent_eager::spawn_fut key="b" -1:main└───┐concurrent_eager::b +1:main┐concurrent_eager::spawn_fut +1:main┐ key="b" +1:main└───┐concurrent_eager::b 1:main ├─── INFO concurrent_eager b 1:main┌───┘ 1:main┘ diff --git a/examples/concurrent_verbose.stdout b/examples/concurrent_verbose.stdout index abbe609..5f71c67 100644 --- a/examples/concurrent_verbose.stdout +++ b/examples/concurrent_verbose.stdout @@ -1,52 +1,64 @@ -1:main┐concurrent_verbose::hierarchical-example version=0.1 -1:main└───┬───┬─── concurrent_verbose::server host="localhost" +1:main┐concurrent_verbose::hierarchical-example +1:main┐ version=0.1 +1:main└───┬───┬─── concurrent_verbose::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main ├─── INFO concurrent_verbose starting 1:main ├─── INFO concurrent_verbose listening 1:main ├─── DEBUG concurrent_verbose starting countdowns -1:main └─┬───┬─── concurrent_verbose::server host="localhost" +1:main └─┬───┬─── concurrent_verbose::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └─┐concurrent_verbose::countdowns -1:main └───┐concurrent_verbose::countdown_a +1:main └─┐concurrent_verbose::countdowns +1:main └───┐concurrent_verbose::countdown_a 1:main ├───┬─── DEBUG concurrent_verbose polling countdown 1:main │ ├─ label="a" 1:main │ └─ count=3 -1:main └─┐concurrent_verbose::countdowns -1:main └─┐concurrent_verbose::countdown_b +1:main └─┐concurrent_verbose::countdowns +1:main └─┐concurrent_verbose::countdown_b 1:main ├───┬─── DEBUG concurrent_verbose polling countdown 1:main │ ├─ label="b" 1:main │ └─ count=5 1:main ├───┬─── DEBUG concurrent_verbose polling countdown 1:main │ ├─ label="b" 1:main │ └─ count=4 -1:main └─┐concurrent_verbose::countdowns -1:main └─┐concurrent_verbose::countdown_a +1:main └─┐concurrent_verbose::countdowns +1:main └─┐concurrent_verbose::countdown_a 1:main ├───┬─── DEBUG concurrent_verbose polling countdown 1:main │ ├─ label="a" 1:main │ └─ count=2 -1:main └─┬───┬─── concurrent_verbose::server host="localhost" +1:main └─┬───┬─── concurrent_verbose::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └─┬───┬─── concurrent_verbose::conn peer_addr="82.9.9.9" +1:main └─┬───┬─── concurrent_verbose::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─── WARN concurrent_verbose peer1 warning -1:main └─┬───┬─── concurrent_verbose::server host="localhost" +1:main └─┬───┬─── concurrent_verbose::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └─┐concurrent_verbose::countdowns +1:main └─┐concurrent_verbose::countdowns 1:main ├─── INFO concurrent_verbose finished polling countdowns -1:main ┌─┘concurrent_verbose::countdown_b -1:main ┌─┘concurrent_verbose::countdowns -1:main ┌─┘concurrent_verbose::countdown_a -1:main ┌─┘concurrent_verbose::countdowns -1:main ┌─┘concurrent_verbose::countdowns -1:main ┌─┴──┬─── concurrent_verbose::server host="localhost" +1:main ┌─┘concurrent_verbose::countdown_b +1:main ┌─┘concurrent_verbose::countdowns +1:main ┌─┘concurrent_verbose::countdown_a +1:main ┌─┘concurrent_verbose::countdowns +1:main ┌─┘concurrent_verbose::countdowns +1:main ┌─┴──┬─── concurrent_verbose::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main ┌─┴──┬─── concurrent_verbose::conn peer_addr="82.9.9.9" +1:main ┌─┴──┬─── concurrent_verbose::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 -1:main ┌─┴──┬─── concurrent_verbose::server host="localhost" +1:main ┌─┴──┬─── concurrent_verbose::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main ├─── INFO concurrent_verbose all done! 1:main ├─── INFO concurrent_verbose exit -1:main ┌─┴──┬─── concurrent_verbose::server host="localhost" +1:main ┌─┴──┬─── concurrent_verbose::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main┌─┘concurrent_verbose::hierarchical-example version=0.1 -1:main┘concurrent_verbose::hierarchical-example version=0.1 +1:main┌─┴──┬─── concurrent_verbose::hierarchical-example +1:main │ └─ version=0.1 +1:main┘concurrent_verbose::hierarchical-example +1:main┘ version=0.1 diff --git a/examples/deferred.stdout b/examples/deferred.stdout index a76aa6f..2b36205 100644 --- a/examples/deferred.stdout +++ b/examples/deferred.stdout @@ -1,66 +1,81 @@ -> This prints before the span open message -1:main┐open: deferred::hierarchical-example version=0.1 -1:main└─┬─┬─ open: deferred::server host="localhost" +1:main┐open: deferred::hierarchical-example +1:main┐ version=0.1 +1:main└─┬─┬─ open: deferred::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main ├─ INFO deferred starting 1:main ├─ INFO deferred listening -> Deferring two levels of spans -1:main └┬─┬─ pre_open: deferred::server host="localhost" +1:main └┬─┬─ pre_open: deferred::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main └┐open(v): deferred::connections -1:main └─┬─┬─ open: deferred::conn peer_addr="82.9.9.9" +1:main └┐open(v): deferred::connections +1:main └─┬─┬─ open: deferred::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─┬─ DEBUG deferred connected 1:main │ └─ peer="peer1" 1:main ├─┬─ DEBUG deferred message received 1:main │ └─ length=2 -1:main ┌┴┬─ close(v): deferred::conn peer_addr="82.9.9.9" +1:main ┌┴┬─ close(v): deferred::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 -1:main ┌┘post_close: deferred::connections -1:main └┐pre_open: deferred::connections -1:main └┬─┬─ open(v): deferred::conn peer_addr="8.8.8.8" +1:main ┌┘post_close: deferred::connections +1:main └┐pre_open: deferred::connections +1:main └┬─┬─ open(v): deferred::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 1:main ├─┬─ DEBUG deferred connected 1:main │ └─ peer="peer3" -1:main ┌┴┬─ close(v): deferred::conn peer_addr="8.8.8.8" +1:main ┌┴┬─ close(v): deferred::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 -1:main ┌┘post_close: deferred::connections -1:main └┐pre_open: deferred::connections +1:main ┌┘post_close: deferred::connections +1:main └┐pre_open: deferred::connections 1:main └┬─┬─ open(v): deferred::foomp 42 <- format string 1:main │ └─ normal_var=43 1:main ├─ ERROR deferred hello 1:main ┌┴┬─ close(v): deferred::foomp 42 <- format string 1:main │ └─ normal_var=43 -1:main ┌┘post_close: deferred::connections -1:main └┐pre_open: deferred::connections -1:main └┬─┬─ open(v): deferred::conn peer_addr="82.9.9.9" +1:main ┌┘post_close: deferred::connections +1:main └┐pre_open: deferred::connections +1:main └┬─┬─ open(v): deferred::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─┬─ WARN deferred weak encryption requested 1:main │ └─ algo="xor" 1:main ├─┬─ DEBUG deferred response sent 1:main │ └─ length=8 1:main ├─ DEBUG deferred disconnected -1:main ┌┴┬─ close(v): deferred::conn peer_addr="82.9.9.9" +1:main ┌┴┬─ close(v): deferred::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 -1:main ┌┘post_close: deferred::connections -1:main └┐pre_open: deferred::connections -1:main └┬─┬─ open(v): deferred::conn peer_addr="8.8.8.8" +1:main ┌┘post_close: deferred::connections +1:main └┐pre_open: deferred::connections +1:main └┬─┬─ open(v): deferred::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 1:main ├─┬─ DEBUG deferred message received 1:main │ └─ length=5 1:main ├─┬─ DEBUG deferred response sent 1:main │ └─ length=8 1:main ├─ DEBUG deferred disconnected -1:main ┌┴┬─ close(v): deferred::conn peer_addr="8.8.8.8" +1:main ┌┴┬─ close(v): deferred::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 -1:main ┌┘post_close: deferred::connections -1:main ┌┘close(v): deferred::connections -1:main ┌┴┬─ post_close: deferred::server host="localhost" +1:main ┌┘post_close: deferred::connections +1:main ┌┘close(v): deferred::connections +1:main ┌┴┬─ post_close: deferred::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main ├─ WARN deferred internal error 1:main ├─ ERROR deferred this is a log message 1:main ├─ INFO deferred exit -1:main ┌┴┬─ close(v): deferred::server host="localhost" +1:main ┌┴┬─ close(v): deferred::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 -1:main┌┘post_close: deferred::hierarchical-example version=0.1 -1:main┘close(v): deferred::hierarchical-example version=0.1 +1:main┌┴┬─ post_close: deferred::hierarchical-example +1:main│ └─ version=0.1 +1:main┘close(v): deferred::hierarchical-example +1:main┘ version=0.1 diff --git a/examples/no-indent.stdout b/examples/no-indent.stdout index 79a6f94..578161b 100644 --- a/examples/no-indent.stdout +++ b/examples/no-indent.stdout @@ -1,27 +1,33 @@ -1:main no_indent::hierarchical-example version=0.1 -1:main no_indent::server host="localhost" +1:main no_indent::hierarchical-example +1:main version=0.1 +1:main no_indent::server +1:main host="localhost" 1:main port=8080 1:main INFO no_indent starting 1:main INFO no_indent listening -1:main no_indent::conn peer_addr="82.9.9.9" +1:main no_indent::conn +1:main peer_addr="82.9.9.9" 1:main port=42381 1:main DEBUG no_indent connected 1:main DEBUG no_indent message received 1:main length=2 -1:main no_indent::conn peer_addr="8.8.8.8" +1:main no_indent::conn +1:main peer_addr="8.8.8.8" 1:main port=18230 1:main DEBUG no_indent connected 1:main no_indent::foomp 42 <- format string 1:main normal_var=43 1:main ERROR no_indent hello -1:main no_indent::conn peer_addr="82.9.9.9" +1:main no_indent::conn +1:main peer_addr="82.9.9.9" 1:main port=42381 1:main WARN no_indent weak encryption requested 1:main algo="xor" 1:main DEBUG no_indent response sent 1:main length=8 1:main DEBUG no_indent disconnected -1:main no_indent::conn peer_addr="8.8.8.8" +1:main no_indent::conn +1:main peer_addr="8.8.8.8" 1:main port=18230 1:main DEBUG no_indent message received 1:main length=5 diff --git a/examples/quiet.stdout b/examples/quiet.stdout index 570bea5..b28e5b5 100644 --- a/examples/quiet.stdout +++ b/examples/quiet.stdout @@ -1,15 +1,19 @@ -1:main┐quiet::hierarchical-example version=0.1 -1:main└─┬─┬─ quiet::server host="localhost" +1:main┐quiet::hierarchical-example +1:main┐ version=0.1 +1:main└─┬─┬─ quiet::server +1:main │ ├─ host="localhost" 1:main │ └─ port=8080 1:main ├─ INFO quiet starting 1:main ├─ INFO quiet listening -1:main └─┬─┬─ quiet::conn peer_addr="82.9.9.9" +1:main └─┬─┬─ quiet::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─ DEBUG quiet connected 1:main ├─┬─ DEBUG quiet message received 1:main │ └─ length=2 1:main ┌─┘ -1:main └─┬─┬─ quiet::conn peer_addr="8.8.8.8" +1:main └─┬─┬─ quiet::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 1:main ├─ DEBUG quiet connected 1:main ┌─┘ @@ -17,7 +21,8 @@ 1:main │ └─ normal_var=43 1:main ├─ ERROR quiet hello 1:main ┌─┘ -1:main └─┬─┬─ quiet::conn peer_addr="82.9.9.9" +1:main └─┬─┬─ quiet::conn +1:main │ ├─ peer_addr="82.9.9.9" 1:main │ └─ port=42381 1:main ├─┬─ WARN quiet weak encryption requested 1:main │ └─ algo="xor" @@ -25,7 +30,8 @@ 1:main │ └─ length=8 1:main ├─ DEBUG quiet disconnected 1:main ┌─┘ -1:main └─┬─┬─ quiet::conn peer_addr="8.8.8.8" +1:main └─┬─┬─ quiet::conn +1:main │ ├─ peer_addr="8.8.8.8" 1:main │ └─ port=18230 1:main ├─┬─ DEBUG quiet message received 1:main │ └─ length=5 diff --git a/examples/wraparound.stdout b/examples/wraparound.stdout index 8f9c67d..798a67a 100644 --- a/examples/wraparound.stdout +++ b/examples/wraparound.stdout @@ -1,50 +1,72 @@ -1:main┐wraparound::recurse i=0 +1:main┐wraparound::recurse +1:main┐ i=0 1:main├─ WARN wraparound boop -1:main└─┐wraparound::recurse i=1 +1:main└─┬─┬─ wraparound::recurse +1:main │ └─ i=1 1:main ├─ WARN wraparound boop -1:main └─┐wraparound::recurse i=2 +1:main └─┬─┬─ wraparound::recurse +1:main │ └─ i=2 1:main ├─ WARN wraparound boop -1:main └─┐wraparound::recurse i=3 +1:main └─┬─┬─ wraparound::recurse +1:main │ └─ i=3 1:main ├─ WARN wraparound boop -1:main └─┐wraparound::recurse i=4 +1:main └─┬─┬─ wraparound::recurse +1:main │ └─ i=4 1:main────────┘ 1:main WARN wraparound boop -1:main┐wraparound::recurse i=5 +1:main┐wraparound::recurse +1:main┐ i=5 1:main├─ WARN wraparound boop -1:main└─┐wraparound::recurse i=6 +1:main└─┬─┬─ wraparound::recurse +1:main │ └─ i=6 1:main ├─ WARN wraparound boop -1:main └─┐wraparound::recurse i=7 +1:main └─┬─┬─ wraparound::recurse +1:main │ └─ i=7 1:main ├─ WARN wraparound boop -1:main └─┐wraparound::recurse i=8 +1:main └─┬─┬─ wraparound::recurse +1:main │ └─ i=8 1:main ├─ WARN wraparound boop -1:main └─┐wraparound::recurse i=9 +1:main └─┬─┬─ wraparound::recurse +1:main │ └─ i=9 1:main────────┘ 1:main WARN wraparound boop -1:main┐wraparound::recurse i=10 +1:main┐wraparound::recurse +1:main┐ i=10 1:main├─ WARN wraparound boop -1:main└─┐wraparound::recurse i=11 +1:main└─┬─┬─ wraparound::recurse +1:main │ └─ i=11 1:main ├─ WARN wraparound boop -1:main └─┐wraparound::recurse i=12 +1:main └─┬─┬─ wraparound::recurse +1:main │ └─ i=12 1:main ├─ WARN wraparound boop -1:main └─┐wraparound::recurse i=13 +1:main └─┬─┬─ wraparound::recurse +1:main │ └─ i=13 1:main ├─ WARN wraparound boop -1:main └─┐wraparound::recurse i=14 +1:main └─┬─┬─ wraparound::recurse +1:main │ └─ i=14 1:main────────┘ 1:main WARN wraparound boop -1:main┐wraparound::recurse i=15 +1:main┐wraparound::recurse +1:main┐ i=15 1:main├─ WARN wraparound boop -1:main└─┐wraparound::recurse i=16 +1:main└─┬─┬─ wraparound::recurse +1:main │ └─ i=16 1:main ├─ WARN wraparound boop -1:main └─┐wraparound::recurse i=17 +1:main └─┬─┬─ wraparound::recurse +1:main │ └─ i=17 1:main ├─ WARN wraparound boop -1:main └─┐wraparound::recurse i=18 +1:main └─┬─┬─ wraparound::recurse +1:main │ └─ i=18 1:main ├─ WARN wraparound boop -1:main └─┐wraparound::recurse i=19 +1:main └─┬─┬─ wraparound::recurse +1:main │ └─ i=19 1:main────────┘ 1:main WARN wraparound boop -1:main┐wraparound::recurse i=20 +1:main┐wraparound::recurse +1:main┐ i=20 1:main├─ WARN wraparound boop -1:main└─┐wraparound::recurse i=21 +1:main└─┬─┬─ wraparound::recurse +1:main │ └─ i=21 1:main ├─ WARN wraparound boop 1:main ├─ WARN wraparound bop 1:main┌─┘ diff --git a/src/format.rs b/src/format.rs index 457bb44..9b46bbb 100644 --- a/src/format.rs +++ b/src/format.rs @@ -272,24 +272,20 @@ impl Buffers { pub struct FmtEvent<'a> { pub bufs: &'a mut Buffers, - pub comma: bool, } impl<'a> Visit for FmtEvent<'a> { fn record_debug(&mut self, field: &Field, value: &dyn fmt::Debug) { let buf = &mut self.bufs.current_buf; - let comma = if self.comma { "\n" } else { "" }; match field.name() { "message" => { - write!(buf, "{} {:?}", comma, value).unwrap(); - self.comma = true; + write!(buf, " {:?}", value).unwrap(); } // Skip fields that are actually log metadata that have already been handled #[cfg(feature = "tracing-log")] name if name.starts_with("log.") => {} name => { - write!(buf, "{} {}={:?}", comma, name, value).unwrap(); - self.comma = true; + write!(buf, "\n {}={:?}", name, value).unwrap(); } } } diff --git a/src/lib.rs b/src/lib.rs index 30b5921..ae2cc2c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -246,15 +246,20 @@ where V: fmt::Display + 'a, { let mut kvs = kvs.into_iter(); + let nl = if self.config.bracketed_fields { + "" + } else { + "\n " + }; if let Some((k, v)) = kvs.next() { if k == "message" { - write!(buf, "{}", v)?; + write!(buf, " {}", v)?; } else { - write!(buf, "{}={}", k, v)?; + write!(buf, "{nl}{}={}", k, v)?; } } for (k, v) in kvs { - write!(buf, "\n {}={}", k, v)?; + write!(buf, "{nl}{}={}", k, v)?; } Ok(()) } @@ -372,8 +377,6 @@ where self.styled(Style::new().fg(Color::Green).bold(), "{") // Style::new().fg(Color::Green).dimmed().paint("{") ) .unwrap(); - } else { - write!(current_buf, " ").unwrap(); } self.print_kvs(&mut current_buf, data.kvs.iter().map(|(k, v)| (*k, v))) .unwrap(); @@ -557,7 +560,7 @@ where .expect("Unable to write to buffer"); } - let mut visitor = FmtEvent { comma: false, bufs }; + let mut visitor = FmtEvent { bufs }; event.record(&mut visitor); visitor .bufs From 1ba511bed8c3a2413fba622309381d61140ac120 Mon Sep 17 00:00:00 2001 From: Oli Scherer Date: Tue, 23 May 2023 15:15:17 +0000 Subject: [PATCH 4/5] Fix first entry and exit field rendering --- examples/basic.stdout | 8 +- examples/basic_non_verbose.stdout | 4 +- examples/basic_verbose_entry.stdout | 4 +- examples/basic_verbose_exit.stdout | 8 +- examples/concurrent.stdout | 4 +- examples/concurrent_eager.stdout | 24 ++--- examples/concurrent_verbose.stdout | 8 +- examples/deferred.stdout | 8 +- examples/quiet.stdout | 4 +- examples/wraparound.stdout | 20 ++-- src/format.rs | 138 +++++++++++++++------------- 11 files changed, 121 insertions(+), 109 deletions(-) diff --git a/examples/basic.stdout b/examples/basic.stdout index aaa00af..9258597 100644 --- a/examples/basic.stdout +++ b/examples/basic.stdout @@ -1,5 +1,5 @@ -1:main┐basic::hierarchical-example -1:main┐ version=0.1 +1:main┬─┬─ basic::hierarchical-example +1:main│ └─ version=0.1 1:main└┬─┬─ basic::hierarchical-example 1:main │ └─ version=0.1 1:main └┬─┬─ basic::server @@ -88,5 +88,5 @@ 1:main │ └─ port=8080 1:main┌┴┬─ basic::hierarchical-example 1:main│ └─ version=0.1 -1:main┘basic::hierarchical-example -1:main┘ version=0.1 +1:main┴┬─ basic::hierarchical-example +1:main └─ version=0.1 diff --git a/examples/basic_non_verbose.stdout b/examples/basic_non_verbose.stdout index 2ffcf6b..8f217d4 100644 --- a/examples/basic_non_verbose.stdout +++ b/examples/basic_non_verbose.stdout @@ -1,5 +1,5 @@ -1:main┐basic_non_verbose::hierarchical-example -1:main┐ version=0.1 +1:main┬─┬─ basic_non_verbose::hierarchical-example +1:main│ └─ version=0.1 1:main└─┬─┬─ basic_non_verbose::server 1:main │ ├─ host="localhost" 1:main │ └─ port=8080 diff --git a/examples/basic_verbose_entry.stdout b/examples/basic_verbose_entry.stdout index a72b176..b5e0ed0 100644 --- a/examples/basic_verbose_entry.stdout +++ b/examples/basic_verbose_entry.stdout @@ -1,5 +1,5 @@ -1:main┐basic_verbose_entry::hierarchical-example -1:main┐ version=0.1 +1:main┬─┬─ basic_verbose_entry::hierarchical-example +1:main│ └─ version=0.1 1:main└┬─┬─ basic_verbose_entry::hierarchical-example 1:main │ └─ version=0.1 1:main └┬─┬─ basic_verbose_entry::server diff --git a/examples/basic_verbose_exit.stdout b/examples/basic_verbose_exit.stdout index b839632..0704c70 100644 --- a/examples/basic_verbose_exit.stdout +++ b/examples/basic_verbose_exit.stdout @@ -1,5 +1,5 @@ -1:main┐basic_verbose_exit::hierarchical-example -1:main┐ version=0.1 +1:main┬─┬─ basic_verbose_exit::hierarchical-example +1:main│ └─ version=0.1 1:main└─┬─┬─ basic_verbose_exit::server 1:main │ ├─ host="localhost" 1:main │ └─ port=8080 @@ -71,5 +71,5 @@ 1:main │ └─ port=8080 1:main┌┴┬─ basic_verbose_exit::hierarchical-example 1:main│ └─ version=0.1 -1:main┘basic_verbose_exit::hierarchical-example -1:main┘ version=0.1 +1:main┴┬─ basic_verbose_exit::hierarchical-example +1:main └─ version=0.1 diff --git a/examples/concurrent.stdout b/examples/concurrent.stdout index 1d246d3..2fe68a7 100644 --- a/examples/concurrent.stdout +++ b/examples/concurrent.stdout @@ -1,5 +1,5 @@ -1:main┐concurrent::hierarchical-example -1:main┐ version=0.1 +1:main┬───┬─── concurrent::hierarchical-example +1:main│ └─ version=0.1 1:main└───┬───┬─── concurrent::server 1:main │ ├─ host="localhost" 1:main │ └─ port=8080 diff --git a/examples/concurrent_eager.stdout b/examples/concurrent_eager.stdout index f4a3776..4fafff1 100644 --- a/examples/concurrent_eager.stdout +++ b/examples/concurrent_eager.stdout @@ -1,20 +1,20 @@ -1:main┐concurrent_eager::spawn_fut -1:main┐ key="a" -1:main┐concurrent_eager::spawn_fut -1:main┐ key="b" -1:main┐concurrent_eager::spawn_fut -1:main┐ key="a" +1:main┬───┬─── concurrent_eager::spawn_fut +1:main│ └─ key="a" +1:main┬───┬─── concurrent_eager::spawn_fut +1:main│ └─ key="b" +1:main┬───┬─── concurrent_eager::spawn_fut +1:main│ └─ key="a" 1:main└───┐concurrent_eager::a -1:main┐concurrent_eager::spawn_fut -1:main┐ key="b" +1:main┬───┬─── concurrent_eager::spawn_fut +1:main│ └─ key="b" 1:main└───┐concurrent_eager::b -1:main┐concurrent_eager::spawn_fut -1:main┐ key="a" +1:main┬───┬─── concurrent_eager::spawn_fut +1:main│ └─ key="a" 1:main└───┐concurrent_eager::a 1:main ├─── INFO concurrent_eager a 1:main┌───┘ -1:main┐concurrent_eager::spawn_fut -1:main┐ key="b" +1:main┬───┬─── concurrent_eager::spawn_fut +1:main│ └─ key="b" 1:main└───┐concurrent_eager::b 1:main ├─── INFO concurrent_eager b 1:main┌───┘ diff --git a/examples/concurrent_verbose.stdout b/examples/concurrent_verbose.stdout index 5f71c67..fe4e5bc 100644 --- a/examples/concurrent_verbose.stdout +++ b/examples/concurrent_verbose.stdout @@ -1,5 +1,5 @@ -1:main┐concurrent_verbose::hierarchical-example -1:main┐ version=0.1 +1:main┬───┬─── concurrent_verbose::hierarchical-example +1:main│ └─ version=0.1 1:main└───┬───┬─── concurrent_verbose::server 1:main │ ├─ host="localhost" 1:main │ └─ port=8080 @@ -60,5 +60,5 @@ 1:main │ └─ port=8080 1:main┌─┴──┬─── concurrent_verbose::hierarchical-example 1:main │ └─ version=0.1 -1:main┘concurrent_verbose::hierarchical-example -1:main┘ version=0.1 +1:main┴──┬─── concurrent_verbose::hierarchical-example +1:main └─ version=0.1 diff --git a/examples/deferred.stdout b/examples/deferred.stdout index 2b36205..45c2ae0 100644 --- a/examples/deferred.stdout +++ b/examples/deferred.stdout @@ -1,6 +1,6 @@ -> This prints before the span open message -1:main┐open: deferred::hierarchical-example -1:main┐ version=0.1 +1:main┬─┬─ open: deferred::hierarchical-example +1:main│ └─ version=0.1 1:main└─┬─┬─ open: deferred::server 1:main │ ├─ host="localhost" 1:main │ └─ port=8080 @@ -77,5 +77,5 @@ 1:main │ └─ port=8080 1:main┌┴┬─ post_close: deferred::hierarchical-example 1:main│ └─ version=0.1 -1:main┘close(v): deferred::hierarchical-example -1:main┘ version=0.1 +1:main┴┬─ close(v): deferred::hierarchical-example +1:main └─ version=0.1 diff --git a/examples/quiet.stdout b/examples/quiet.stdout index b28e5b5..3226e8e 100644 --- a/examples/quiet.stdout +++ b/examples/quiet.stdout @@ -1,5 +1,5 @@ -1:main┐quiet::hierarchical-example -1:main┐ version=0.1 +1:main┬─┬─ quiet::hierarchical-example +1:main│ └─ version=0.1 1:main└─┬─┬─ quiet::server 1:main │ ├─ host="localhost" 1:main │ └─ port=8080 diff --git a/examples/wraparound.stdout b/examples/wraparound.stdout index 798a67a..5212b7e 100644 --- a/examples/wraparound.stdout +++ b/examples/wraparound.stdout @@ -1,5 +1,5 @@ -1:main┐wraparound::recurse -1:main┐ i=0 +1:main┬─┬─ wraparound::recurse +1:main│ └─ i=0 1:main├─ WARN wraparound boop 1:main└─┬─┬─ wraparound::recurse 1:main │ └─ i=1 @@ -14,8 +14,8 @@ 1:main │ └─ i=4 1:main────────┘ 1:main WARN wraparound boop -1:main┐wraparound::recurse -1:main┐ i=5 +1:main┬─┬─ wraparound::recurse +1:main│ └─ i=5 1:main├─ WARN wraparound boop 1:main└─┬─┬─ wraparound::recurse 1:main │ └─ i=6 @@ -30,8 +30,8 @@ 1:main │ └─ i=9 1:main────────┘ 1:main WARN wraparound boop -1:main┐wraparound::recurse -1:main┐ i=10 +1:main┬─┬─ wraparound::recurse +1:main│ └─ i=10 1:main├─ WARN wraparound boop 1:main└─┬─┬─ wraparound::recurse 1:main │ └─ i=11 @@ -46,8 +46,8 @@ 1:main │ └─ i=14 1:main────────┘ 1:main WARN wraparound boop -1:main┐wraparound::recurse -1:main┐ i=15 +1:main┬─┬─ wraparound::recurse +1:main│ └─ i=15 1:main├─ WARN wraparound boop 1:main└─┬─┬─ wraparound::recurse 1:main │ └─ i=16 @@ -62,8 +62,8 @@ 1:main │ └─ i=19 1:main────────┘ 1:main WARN wraparound boop -1:main┐wraparound::recurse -1:main┐ i=20 +1:main┬─┬─ wraparound::recurse +1:main│ └─ i=20 1:main├─ WARN wraparound boop 1:main└─┬─┬─ wraparound::recurse 1:main │ └─ i=21 diff --git a/src/format.rs b/src/format.rs index 9b46bbb..dbfa3ce 100644 --- a/src/format.rs +++ b/src/format.rs @@ -335,29 +335,12 @@ fn indent_block_with_lines( if lines.is_empty() { return; - } else if indent_spaces == 0 { - for line in lines { - buf.push_str(prefix); - // The first indent is special, we only need to print open/close and nothing else - if indent == 0 { - match style { - SpanMode::Open { .. } => buf.push_str(LINE_OPEN), - SpanMode::Retrace { .. } => buf.push_str(LINE_OPEN), - SpanMode::Close { .. } => buf.push_str(LINE_CLOSE), - SpanMode::PreOpen { .. } | SpanMode::PostClose => {} - SpanMode::Event => {} - } - } - buf.push_str(line); - buf.push('\n'); - } - return; } let mut s = String::with_capacity(indent_spaces + prefix.len()); s.push_str(prefix); - for _ in 0..(indent_spaces - indent_amount) { + for _ in 0..indent_spaces.saturating_sub(indent_amount) { s.push(' '); } @@ -388,9 +371,11 @@ fn indent_block_with_lines( } } SpanMode::Open { verbose: false } | SpanMode::Retrace { verbose: false } => { - buf.push(LINE_OPEN2); - for _ in 1..indent_amount { - buf.push_str(LINE_HORIZ); + if indent_spaces != 0 { + buf.push(LINE_OPEN2); + for _ in 1..indent_amount { + buf.push_str(LINE_HORIZ); + } } if lines.len() > 1 { buf.push_str(ARGS_BRANCH); @@ -401,25 +386,30 @@ fn indent_block_with_lines( for _ in 1..indent_amount { buf.push_str(LINE_HORIZ); } - buf.push_str(" "); - for _ in 0..indent_amount { - s.push(' '); + buf.push(' '); + + if indent_spaces != 0 { + for _ in 0..indent_amount { + s.push(' '); + } } } else { buf.push_str(LINE_OPEN); } } SpanMode::Open { verbose: true } | SpanMode::Retrace { verbose: true } => { - buf.push(' '); - for _ in 1..(indent_amount / 2) { + if indent_spaces != 0 { buf.push(' '); - } - // We don't have the space for fancy rendering at single space indent. - if indent_amount > 1 { - buf.push(LINE_OPEN2); - } - for _ in (indent_amount / 2)..(indent_amount - 1) { - buf.push_str(LINE_HORIZ); + for _ in 1..(indent_amount / 2) { + buf.push(' '); + } + // We don't have the space for fancy rendering at single space indent. + if indent_amount > 1 { + buf.push(LINE_OPEN2); + } + for _ in (indent_amount / 2)..(indent_amount - 1) { + buf.push_str(LINE_HORIZ); + } } // We don't have the space for fancy rendering at single space indent. if indent_amount > 1 { @@ -432,9 +422,11 @@ fn indent_block_with_lines( for _ in 1..indent_amount { buf.push_str(LINE_HORIZ); } - buf.push_str(" "); - for _ in 0..indent_amount { - s.push(' '); + buf.push(' '); + if indent_spaces != 0 { + for _ in 0..indent_amount { + s.push(' '); + } } } else { buf.push_str(LINE_OPEN); @@ -444,23 +436,27 @@ fn indent_block_with_lines( } } SpanMode::Close { verbose: false } => { - buf.push(LINE_CLOSE2); - for _ in 1..indent_amount { - buf.push_str(LINE_HORIZ); + if indent_spaces != 0 { + buf.push(LINE_CLOSE2); + for _ in 1..indent_amount { + buf.push_str(LINE_HORIZ); + } } buf.push_str(LINE_CLOSE); } SpanMode::Close { verbose: true } => { - buf.push(' '); - for _ in 1..(indent_amount / 2) { + if indent_spaces != 0 { buf.push(' '); - } - // We don't have the space for fancy rendering at single space indent. - if indent_amount > 1 { - buf.push(LINE_CLOSE2); - } - for _ in (indent_amount / 2)..(indent_amount - 1) { - buf.push_str(LINE_HORIZ); + for _ in 1..(indent_amount / 2) { + buf.push(' '); + } + // We don't have the space for fancy rendering at single space indent. + if indent_amount > 1 { + buf.push(LINE_CLOSE2); + } + for _ in (indent_amount / 2)..(indent_amount - 1) { + buf.push_str(LINE_HORIZ); + } } // We don't have the space for fancy rendering at single space indent. if indent_amount > 1 { @@ -473,9 +469,12 @@ fn indent_block_with_lines( for _ in 1..indent_amount { buf.push_str(LINE_HORIZ); } - buf.push_str(" "); - for _ in 0..indent_amount - 1 { - s.push(' '); + buf.push(' '); + + if indent_spaces != 0 { + for _ in 0..indent_amount - 1 { + s.push(' '); + } } } else { buf.push_str(LINE_CLOSE); @@ -507,31 +506,44 @@ fn indent_block_with_lines( } } SpanMode::Event => { - buf.push_str(LINE_BRANCH); + if indent_spaces != 0 { + buf.push_str(LINE_BRANCH); + } if lines.len() > 1 { - for _ in 0..(indent_amount - 1) { - buf.push_str(LINE_HORIZ); + if indent_spaces != 0 { + for _ in 0..(indent_amount - 1) { + buf.push_str(LINE_HORIZ); + } } buf.push_str(ARGS_BRANCH); } - // add `indent_amount - 1` horizontal lines before the span/event - for _ in 0..(indent_amount - 1) { - buf.push_str(LINE_HORIZ); + if indent_spaces != 0 { + // add `indent_amount - 1` horizontal lines before the span/event + for _ in 0..(indent_amount - 1) { + buf.push_str(LINE_HORIZ); + } } } } buf.push_str(lines[0]); buf.push('\n'); - // add the rest of the indentation, since we don't want to draw horizontal lines - // for subsequent lines - for i in 0..indent_amount { - if i % indent_amount == 0 { - s.push_str(LINE_VERT); - } else { + match style { + SpanMode::Close { verbose: true } if indent_spaces == 0 => { s.push(' '); } + _ => { + // add the rest of the indentation, since we don't want to draw horizontal lines + // for subsequent lines + for i in 0..indent_amount { + if i % indent_amount == 0 { + s.push_str(LINE_VERT); + } else { + s.push(' '); + } + } + } } // add all of the actual content, with each line preceded by the indent string From 7a2985c42c5cf4203033b8af12d6bc68f36b0459 Mon Sep 17 00:00:00 2001 From: Oli Scherer Date: Tue, 23 May 2023 15:28:08 +0000 Subject: [PATCH 5/5] Fix formatting for space indented mode --- examples/no-indent.stdout | 41 ++++++++++++--------------------------- src/format.rs | 8 +++++++- src/lib.rs | 15 +++++++++----- 3 files changed, 29 insertions(+), 35 deletions(-) diff --git a/examples/no-indent.stdout b/examples/no-indent.stdout index 578161b..21bd888 100644 --- a/examples/no-indent.stdout +++ b/examples/no-indent.stdout @@ -1,38 +1,21 @@ -1:main no_indent::hierarchical-example -1:main version=0.1 -1:main no_indent::server -1:main host="localhost" -1:main port=8080 +1:main no_indent::hierarchical-example version=0.1 +1:main no_indent::server host="localhost", port=8080 1:main INFO no_indent starting 1:main INFO no_indent listening -1:main no_indent::conn -1:main peer_addr="82.9.9.9" -1:main port=42381 +1:main no_indent::conn peer_addr="82.9.9.9", port=42381 1:main DEBUG no_indent connected -1:main DEBUG no_indent message received -1:main length=2 -1:main no_indent::conn -1:main peer_addr="8.8.8.8" -1:main port=18230 +1:main DEBUG no_indent message received, length=2 +1:main no_indent::conn peer_addr="8.8.8.8", port=18230 1:main DEBUG no_indent connected -1:main no_indent::foomp 42 <- format string -1:main normal_var=43 +1:main no_indent::foomp 42 <- format string, normal_var=43 1:main ERROR no_indent hello -1:main no_indent::conn -1:main peer_addr="82.9.9.9" -1:main port=42381 -1:main WARN no_indent weak encryption requested -1:main algo="xor" -1:main DEBUG no_indent response sent -1:main length=8 +1:main no_indent::conn peer_addr="82.9.9.9", port=42381 +1:main WARN no_indent weak encryption requested, algo="xor" +1:main DEBUG no_indent response sent, length=8 1:main DEBUG no_indent disconnected -1:main no_indent::conn -1:main peer_addr="8.8.8.8" -1:main port=18230 -1:main DEBUG no_indent message received -1:main length=5 -1:main DEBUG no_indent response sent -1:main length=8 +1:main no_indent::conn peer_addr="8.8.8.8", port=18230 +1:main DEBUG no_indent message received, length=5 +1:main DEBUG no_indent response sent, length=8 1:main DEBUG no_indent disconnected 1:main WARN no_indent internal error 1:main INFO no_indent exit diff --git a/src/format.rs b/src/format.rs index dbfa3ce..28a1314 100644 --- a/src/format.rs +++ b/src/format.rs @@ -272,6 +272,7 @@ impl Buffers { pub struct FmtEvent<'a> { pub bufs: &'a mut Buffers, + pub lines: bool, } impl<'a> Visit for FmtEvent<'a> { @@ -285,7 +286,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 ae2cc2c..6ed4f67 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -246,16 +246,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 { @@ -560,7 +562,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