macro_rules! event { (target: $target:expr, $lvl:expr, { $( $($k:ident).+ = $val:expr ),* $(,)*} ) => { ... }; ( target: $target:expr, $lvl:expr, { $( $($k:ident).+ = $val:expr ),*, }, $($arg:tt)+ ) => { ... }; ( target: $target:expr, $lvl:expr, { $( $($k:ident).+ = $val:expr ),* }, $($arg:tt)+ ) => { ... }; (target: $target:expr, $lvl:expr, $( $($k:ident).+ = $val:expr ),+, ) => { ... }; (target: $target:expr, $lvl:expr, $( $($k:ident).+ = $val:expr ),+ ) => { ... }; (target: $target:expr, $lvl:expr, $($arg:tt)+ ) => { ... }; ( $lvl:expr, { $( $($k:ident).+ = $val:expr ),*, }, $($arg:tt)+ ) => { ... }; ( $lvl:expr, { $( $($k:ident).+ = $val:expr ),* }, $($arg:tt)+ ) => { ... }; ( $lvl:expr, $( $($k:ident).+ = $val:expr ),*, ) => { ... }; ( $lvl:expr, $( $($k:ident).+ = $val:expr ),* ) => { ... }; ( $lvl:expr, $($arg:tt)+ ) => { ... }; }
Expand description
Constructs a new Event
.
§Examples
use tokio_trace::{Level, field};
let data = (42, "fourty-two");
let private_data = "private";
let error = "a bad error";
event!(Level::ERROR, { error = field::display(error) }, "Received error");
event!(target: "app_events", Level::WARN, {
private_data = private_data,
data = field::debug(data),
},
"App warning: {}", error
);
event!(Level::INFO, the_answer = data.0);
Note that unlike span!
, event!
requires a value for all fields. As
events are recorded immediately when the macro is invoked, there is no
opportunity for fields to be recorded later. A trailing comma on the final
field is valid.
For example, the following does not compile:
ⓘ
use tokio_trace::{Level, field};
event!(Level::Info, foo = 5, bad_field, bar = field::display("hello"))
#}
Events may have up to 32 fields. The following will not compile:
ⓘ
event!(Level::INFO,
a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8, i = 9,
j = 10, k = 11, l = 12, m = 13, n = 14, o = 15, p = 16, q = 17,
r = 18, s = 19, t = 20, u = 21, v = 22, w = 23, x = 24, y = 25,
z = 26, aa = 27, bb = 28, cc = 29, dd = 30, ee = 31, ff = 32, gg = 33
);