mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-08-23 00:00:10 +02:00
## Motivation Was determined that having the span! macro default to the TRACE level is probably not ideal (see discussion on #952). Closes #1013 ## Solution Remove default trace level and make log lvl mandatory on span! macro, and add the respective `trace_span!`, `debug_span!`, `info_span!`, `warn_span!` and `error_span!` macros that behave as span! macro, but with defined log levels ## Notes I think this is it, also removed some captures that were repeated, and some testcases that also seemed repeated after adding the mandatory log level, but please review it, if more tests or examples are needed happy to provide (tried to find a way to get the generated macros log level, but didn't find one, if there is a way i can add tests to assert that the generated macro has the matching log level ). thanks
368 lines
14 KiB
Rust
368 lines
14 KiB
Rust
use tokio_trace::Level;
|
|
|
|
#[macro_use]
|
|
extern crate tokio_trace;
|
|
// Tests that macros work across various invocation syntax.
|
|
//
|
|
// These are quite repetitive, and _could_ be generated by a macro. However,
|
|
// they're compile-time tests, so I want to get line numbers etc out of
|
|
// failures, and producing them with a macro would muddy the waters a bit.
|
|
|
|
#[test]
|
|
fn span() {
|
|
span!(Level::DEBUG, target: "foo_events", "foo", bar = 2, baz = 3);
|
|
span!(Level::DEBUG, target: "foo_events", "foo", bar = 2, baz = 4,);
|
|
span!(Level::DEBUG, target: "foo_events", "foo");
|
|
span!(Level::DEBUG, target: "foo_events", "bar",);
|
|
span!(Level::DEBUG, "foo", bar = 2, baz = 3);
|
|
span!(Level::DEBUG, "foo", bar = 2, baz = 4,);
|
|
span!(Level::TRACE, "foo", bar = 2, baz = 3);
|
|
span!(Level::TRACE, "foo", bar = 2, baz = 4,);
|
|
span!(Level::TRACE, "foo");
|
|
span!(Level::TRACE, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn trace_span() {
|
|
trace_span!(target: "foo_events", "foo", bar = 2, baz = 3);
|
|
trace_span!(target: "foo_events", "foo", bar = 2, baz = 4,);
|
|
trace_span!(target: "foo_events", "foo");
|
|
trace_span!(target: "foo_events", "bar",);
|
|
trace_span!("foo", bar = 2, baz = 3);
|
|
trace_span!("foo", bar = 2, baz = 4,);
|
|
trace_span!("bar");
|
|
trace_span!("bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn debug_span() {
|
|
debug_span!(target: "foo_events", "foo", bar = 2, baz = 3);
|
|
debug_span!(target: "foo_events", "foo", bar = 2, baz = 4,);
|
|
debug_span!(target: "foo_events", "foo");
|
|
debug_span!(target: "foo_events", "bar",);
|
|
debug_span!("foo", bar = 2, baz = 3);
|
|
debug_span!("foo", bar = 2, baz = 4,);
|
|
debug_span!("bar");
|
|
debug_span!("bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn info_span() {
|
|
info_span!(target: "foo_events", "foo", bar = 2, baz = 3);
|
|
info_span!(target: "foo_events", "foo", bar = 2, baz = 4,);
|
|
info_span!(target: "foo_events", "foo");
|
|
info_span!(target: "foo_events", "bar",);
|
|
info_span!("foo", bar = 2, baz = 3);
|
|
info_span!("foo", bar = 2, baz = 4,);
|
|
info_span!("bar");
|
|
info_span!("bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn warn_span() {
|
|
warn_span!(target: "foo_events", "foo", bar = 2, baz = 3);
|
|
warn_span!(target: "foo_events", "foo", bar = 2, baz = 4,);
|
|
warn_span!(target: "foo_events", "foo");
|
|
warn_span!(target: "foo_events", "bar",);
|
|
warn_span!("foo", bar = 2, baz = 3);
|
|
warn_span!("foo", bar = 2, baz = 4,);
|
|
warn_span!("bar");
|
|
warn_span!("bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn error_span() {
|
|
error_span!(target: "foo_events", "foo", bar = 2, baz = 3);
|
|
error_span!(target: "foo_events", "foo", bar = 2, baz = 4,);
|
|
error_span!(target: "foo_events", "foo");
|
|
error_span!(target: "foo_events", "bar",);
|
|
error_span!("foo", bar = 2, baz = 3);
|
|
error_span!("foo", bar = 2, baz = 4,);
|
|
error_span!("bar");
|
|
error_span!("bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn span_root() {
|
|
span!(Level::DEBUG, target: "foo_events", parent: None, "foo", bar = 2, baz = 3);
|
|
span!(Level::DEBUG, target: "foo_events", parent: None, "foo", bar = 2, baz = 4,);
|
|
span!(Level::DEBUG, target: "foo_events", parent: None, "foo");
|
|
span!(Level::DEBUG, target: "foo_events", parent: None, "bar",);
|
|
span!(Level::TRACE, parent: None, "foo", bar = 2, baz = 3);
|
|
span!(Level::TRACE, parent: None, "foo", bar = 2, baz = 4,);
|
|
span!(Level::TRACE, parent: None, "foo");
|
|
span!(Level::TRACE, parent: None, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn trace_span_root() {
|
|
trace_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 3);
|
|
trace_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 4,);
|
|
trace_span!(target: "foo_events", parent: None, "foo");
|
|
trace_span!(target: "foo_events", parent: None, "bar",);
|
|
trace_span!(parent: None, "foo", bar = 2, baz = 3);
|
|
trace_span!(parent: None, "foo", bar = 2, baz = 4,);
|
|
trace_span!(parent: None, "foo");
|
|
trace_span!(parent: None, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn debug_span_root() {
|
|
debug_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 3);
|
|
debug_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 4,);
|
|
debug_span!(target: "foo_events", parent: None, "foo");
|
|
debug_span!(target: "foo_events", parent: None, "bar",);
|
|
debug_span!(parent: None, "foo", bar = 2, baz = 3);
|
|
debug_span!(parent: None, "foo", bar = 2, baz = 4,);
|
|
debug_span!(parent: None, "foo");
|
|
debug_span!(parent: None, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn info_span_root() {
|
|
info_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 3);
|
|
info_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 4,);
|
|
info_span!(target: "foo_events", parent: None, "foo");
|
|
info_span!(target: "foo_events", parent: None, "bar",);
|
|
info_span!(parent: None, "foo", bar = 2, baz = 3);
|
|
info_span!(parent: None, "foo", bar = 2, baz = 4,);
|
|
info_span!(parent: None, "foo");
|
|
info_span!(parent: None, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn warn_span_root() {
|
|
warn_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 3);
|
|
warn_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 4,);
|
|
warn_span!(target: "foo_events", parent: None, "foo");
|
|
warn_span!(target: "foo_events", parent: None, "bar",);
|
|
warn_span!(parent: None, "foo", bar = 2, baz = 3);
|
|
warn_span!(parent: None, "foo", bar = 2, baz = 4,);
|
|
warn_span!(parent: None, "foo");
|
|
warn_span!(parent: None, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn error_span_root() {
|
|
error_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 3);
|
|
error_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 4,);
|
|
error_span!(target: "foo_events", parent: None, "foo");
|
|
error_span!(target: "foo_events", parent: None, "bar",);
|
|
error_span!(parent: None, "foo", bar = 2, baz = 3);
|
|
error_span!(parent: None, "foo", bar = 2, baz = 4,);
|
|
error_span!(parent: None, "foo");
|
|
error_span!(parent: None, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn span_with_parent() {
|
|
let p = span!(Level::TRACE, "im_a_parent!");
|
|
span!(Level::DEBUG, target: "foo_events", parent: &p, "foo", bar = 2, baz = 3);
|
|
span!(Level::DEBUG, target: "foo_events", parent: &p, "foo", bar = 2, baz = 4,);
|
|
span!(Level::DEBUG, target: "foo_events", parent: &p, "foo");
|
|
span!(Level::DEBUG, target: "foo_events", parent: &p, "bar",);
|
|
|
|
span!(Level::DEBUG, parent: &p, "foo", bar = 2, baz = 3);
|
|
span!(Level::DEBUG, parent: &p, "foo", bar = 2, baz = 4,);
|
|
|
|
span!(Level::DEBUG, parent: &p, "foo");
|
|
span!(Level::DEBUG, parent: &p, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn trace_span_with_parent() {
|
|
let p = span!(Level::TRACE, "im_a_parent!");
|
|
trace_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 3);
|
|
trace_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 4,);
|
|
trace_span!(target: "foo_events", parent: &p, "foo");
|
|
trace_span!(target: "foo_events", parent: &p, "bar",);
|
|
|
|
trace_span!(parent: &p, "foo", bar = 2, baz = 3);
|
|
trace_span!(parent: &p, "foo", bar = 2, baz = 4,);
|
|
|
|
trace_span!(parent: &p, "foo");
|
|
trace_span!(parent: &p, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn debug_span_with_parent() {
|
|
let p = span!(Level::TRACE, "im_a_parent!");
|
|
debug_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 3);
|
|
debug_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 4,);
|
|
debug_span!(target: "foo_events", parent: &p, "foo");
|
|
debug_span!(target: "foo_events", parent: &p, "bar",);
|
|
|
|
debug_span!(parent: &p, "foo", bar = 2, baz = 3);
|
|
debug_span!(parent: &p, "foo", bar = 2, baz = 4,);
|
|
|
|
debug_span!(parent: &p, "foo");
|
|
debug_span!(parent: &p, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn info_span_with_parent() {
|
|
let p = span!(Level::TRACE, "im_a_parent!");
|
|
info_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 3);
|
|
info_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 4,);
|
|
info_span!(target: "foo_events", parent: &p, "foo");
|
|
info_span!(target: "foo_events", parent: &p, "bar",);
|
|
|
|
info_span!(parent: &p, "foo", bar = 2, baz = 3);
|
|
info_span!(parent: &p, "foo", bar = 2, baz = 4,);
|
|
|
|
info_span!(parent: &p, "foo");
|
|
info_span!(parent: &p, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn warn_span_with_parent() {
|
|
let p = span!(Level::TRACE, "im_a_parent!");
|
|
warn_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 3);
|
|
warn_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 4,);
|
|
warn_span!(target: "foo_events", parent: &p, "foo");
|
|
warn_span!(target: "foo_events", parent: &p, "bar",);
|
|
|
|
warn_span!(parent: &p, "foo", bar = 2, baz = 3);
|
|
warn_span!(parent: &p, "foo", bar = 2, baz = 4,);
|
|
|
|
warn_span!(parent: &p, "foo");
|
|
warn_span!(parent: &p, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn error_span_with_parent() {
|
|
let p = span!(Level::TRACE, "im_a_parent!");
|
|
error_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 3);
|
|
error_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 4,);
|
|
error_span!(target: "foo_events", parent: &p, "foo");
|
|
error_span!(target: "foo_events", parent: &p, "bar",);
|
|
|
|
error_span!(parent: &p, "foo", bar = 2, baz = 3);
|
|
error_span!(parent: &p, "foo", bar = 2, baz = 4,);
|
|
|
|
error_span!(parent: &p, "foo");
|
|
error_span!(parent: &p, "bar",);
|
|
}
|
|
|
|
#[test]
|
|
fn event() {
|
|
event!(Level::DEBUG, foo = 3, bar = 2, baz = false);
|
|
event!(Level::DEBUG, foo = 3, bar = 3,);
|
|
event!(Level::DEBUG, "foo");
|
|
event!(Level::DEBUG, "foo: {}", 3);
|
|
event!(Level::DEBUG, { foo = 3, bar = 80 }, "baz");
|
|
event!(Level::DEBUG, { foo = 2, bar = 79 }, "baz {:?}", true);
|
|
event!(Level::DEBUG, { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
event!(Level::DEBUG, { foo = 2, bar = 78, }, "baz");
|
|
event!(target: "foo_events", Level::DEBUG, foo = 3, bar = 2, baz = false);
|
|
event!(target: "foo_events", Level::DEBUG, foo = 3, bar = 3,);
|
|
event!(target: "foo_events", Level::DEBUG, "foo");
|
|
event!(target: "foo_events", Level::DEBUG, "foo: {}", 3);
|
|
event!(target: "foo_events", Level::DEBUG, { foo = 3, bar = 80 }, "baz");
|
|
event!(target: "foo_events", Level::DEBUG, { foo = 2, bar = 79 }, "baz {:?}", true);
|
|
event!(target: "foo_events", Level::DEBUG, { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
event!(target: "foo_events", Level::DEBUG, { foo = 2, bar = 78, }, "baz");
|
|
}
|
|
|
|
#[test]
|
|
fn trace() {
|
|
trace!(foo = 3, bar = 2, baz = false);
|
|
trace!(foo = 3, bar = 3,);
|
|
trace!("foo");
|
|
trace!("foo: {}", 3);
|
|
trace!({ foo = 3, bar = 80 }, "baz");
|
|
trace!({ foo = 2, bar = 79 }, "baz {:?}", true);
|
|
trace!({ foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
trace!({ foo = 2, bar = 78, }, "baz");
|
|
trace!(target: "foo_events", foo = 3, bar = 2, baz = false);
|
|
trace!(target: "foo_events", foo = 3, bar = 3,);
|
|
trace!(target: "foo_events", "foo");
|
|
trace!(target: "foo_events", "foo: {}", 3);
|
|
trace!(target: "foo_events", { foo = 3, bar = 80 }, "baz");
|
|
trace!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}", true);
|
|
trace!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
trace!(target: "foo_events", { foo = 2, bar = 78, }, "baz");
|
|
}
|
|
|
|
#[test]
|
|
fn debug() {
|
|
debug!(foo = 3, bar = 2, baz = false);
|
|
debug!(foo = 3, bar = 3,);
|
|
debug!("foo");
|
|
debug!("foo: {}", 3);
|
|
debug!({ foo = 3, bar = 80 }, "baz");
|
|
debug!({ foo = 2, bar = 79 }, "baz {:?}", true);
|
|
debug!({ foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
debug!({ foo = 2, bar = 78, }, "baz");
|
|
debug!(target: "foo_events", foo = 3, bar = 2, baz = false);
|
|
debug!(target: "foo_events", foo = 3, bar = 3,);
|
|
debug!(target: "foo_events", "foo");
|
|
debug!(target: "foo_events", "foo: {}", 3);
|
|
debug!(target: "foo_events", { foo = 3, bar = 80 }, "baz");
|
|
debug!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}", true);
|
|
debug!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
debug!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
debug!(target: "foo_events", { foo = 2, bar = 78, }, "baz");
|
|
}
|
|
|
|
#[test]
|
|
fn info() {
|
|
info!(foo = 3, bar = 2, baz = false);
|
|
info!(foo = 3, bar = 3,);
|
|
info!("foo");
|
|
info!("foo: {}", 3);
|
|
info!({ foo = 3, bar = 80 }, "baz");
|
|
info!({ foo = 2, bar = 79 }, "baz {:?}", true);
|
|
info!({ foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
info!({ foo = 2, bar = 78, }, "baz");
|
|
info!(target: "foo_events", foo = 3, bar = 2, baz = false);
|
|
info!(target: "foo_events", foo = 3, bar = 3,);
|
|
info!(target: "foo_events", "foo");
|
|
info!(target: "foo_events", "foo: {}", 3);
|
|
info!(target: "foo_events", { foo = 3, bar = 80 }, "baz");
|
|
info!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}", true);
|
|
info!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
info!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
info!(target: "foo_events", { foo = 2, bar = 78, }, "baz");
|
|
}
|
|
|
|
#[test]
|
|
fn warn() {
|
|
warn!(foo = 3, bar = 2, baz = false);
|
|
warn!(foo = 3, bar = 3,);
|
|
warn!("foo");
|
|
warn!("foo: {}", 3);
|
|
warn!({ foo = 3, bar = 80 }, "baz");
|
|
warn!({ foo = 2, bar = 79 }, "baz {:?}", true);
|
|
warn!({ foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
warn!({ foo = 2, bar = 78 }, "baz");
|
|
warn!(target: "foo_events", foo = 3, bar = 2, baz = false);
|
|
warn!(target: "foo_events", foo = 3, bar = 3,);
|
|
warn!(target: "foo_events", "foo");
|
|
warn!(target: "foo_events", "foo: {}", 3);
|
|
warn!(target: "foo_events", { foo = 3, bar = 80 }, "baz");
|
|
warn!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}", true);
|
|
warn!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
warn!(target: "foo_events", { foo = 2, bar = 78, }, "baz");
|
|
}
|
|
|
|
#[test]
|
|
fn error() {
|
|
error!(foo = 3, bar = 2, baz = false);
|
|
error!(foo = 3, bar = 3,);
|
|
error!("foo");
|
|
error!("foo: {}", 3);
|
|
error!({ foo = 3, bar = 80 }, "baz");
|
|
error!({ foo = 2, bar = 79 }, "baz {:?}", true);
|
|
error!({ foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
error!({ foo = 2, bar = 78, }, "baz");
|
|
error!(target: "foo_events", foo = 3, bar = 2, baz = false);
|
|
error!(target: "foo_events", foo = 3, bar = 3,);
|
|
error!(target: "foo_events", "foo");
|
|
error!(target: "foo_events", "foo: {}", 3);
|
|
error!(target: "foo_events", { foo = 3, bar = 80 }, "baz");
|
|
error!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}", true);
|
|
error!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
|
|
error!(target: "foo_events", { foo = 2, bar = 78, }, "baz");
|
|
}
|