Update tracing-subscriber and use tracing-tree when testing (#586)
This makes reading the logs way easier on the eyes.
This commit is contained in:
@@ -7,9 +7,11 @@ edition = "2018"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
h2 = { path = "../..", features = ["stream", "unstable"] }
|
h2 = { path = "../..", features = ["stream", "unstable"] }
|
||||||
|
|
||||||
|
atty = "0.2"
|
||||||
bytes = "1"
|
bytes = "1"
|
||||||
tracing = "0.1"
|
tracing = "0.1"
|
||||||
tracing-subscriber = { version = "0.2", default-features = false, features = ["fmt", "chrono", "ansi"] }
|
tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt"] }
|
||||||
|
tracing-tree = "0.2"
|
||||||
futures = { version = "0.3", default-features = false }
|
futures = { version = "0.3", default-features = false }
|
||||||
http = "0.2"
|
http = "0.2"
|
||||||
tokio = { version = "1", features = ["time"] }
|
tokio = { version = "1", features = ["time"] }
|
||||||
|
|||||||
@@ -1,41 +1,17 @@
|
|||||||
use std::{io, str};
|
|
||||||
pub use tracing;
|
pub use tracing;
|
||||||
pub use tracing_subscriber;
|
pub use tracing_subscriber;
|
||||||
|
|
||||||
|
use tracing_subscriber::layer::SubscriberExt;
|
||||||
|
use tracing_subscriber::util::SubscriberInitExt;
|
||||||
|
|
||||||
pub fn init() -> tracing::dispatcher::DefaultGuard {
|
pub fn init() -> tracing::dispatcher::DefaultGuard {
|
||||||
tracing::subscriber::set_default(
|
let use_colors = atty::is(atty::Stream::Stdout);
|
||||||
tracing_subscriber::fmt()
|
let layer = tracing_tree::HierarchicalLayer::default()
|
||||||
.with_max_level(tracing::Level::TRACE)
|
.with_writer(tracing_subscriber::fmt::writer::TestWriter::default())
|
||||||
.with_span_events(tracing_subscriber::fmt::format::FmtSpan::CLOSE)
|
.with_indent_lines(true)
|
||||||
.with_writer(PrintlnWriter { _p: () })
|
.with_ansi(use_colors)
|
||||||
.finish(),
|
.with_targets(true)
|
||||||
)
|
.with_indent_amount(2);
|
||||||
}
|
|
||||||
|
|
||||||
struct PrintlnWriter {
|
tracing_subscriber::registry().with(layer).set_default()
|
||||||
_p: (),
|
|
||||||
}
|
|
||||||
|
|
||||||
impl tracing_subscriber::fmt::MakeWriter for PrintlnWriter {
|
|
||||||
type Writer = PrintlnWriter;
|
|
||||||
fn make_writer(&self) -> Self::Writer {
|
|
||||||
PrintlnWriter { _p: () }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl io::Write for PrintlnWriter {
|
|
||||||
fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
|
|
||||||
let s = str::from_utf8(buf).map_err(|e| io::Error::new(io::ErrorKind::InvalidInput, e))?;
|
|
||||||
println!("{}", s);
|
|
||||||
Ok(s.len())
|
|
||||||
}
|
|
||||||
|
|
||||||
fn write_fmt(&mut self, fmt: std::fmt::Arguments<'_>) -> io::Result<()> {
|
|
||||||
println!("{}", fmt);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
fn flush(&mut self) -> io::Result<()> {
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user