forked from mirror/async-std
32 lines
929 B
Rust
32 lines
929 B
Rust
use std::fmt::Arguments;
|
|
|
|
/// This struct only exists because kv logging isn't supported from the macros right now.
|
|
pub(crate) struct LogData {
|
|
pub parent_id: u64,
|
|
pub child_id: u64,
|
|
}
|
|
|
|
impl<'a> log::kv::Source for LogData {
|
|
fn visit<'kvs>(
|
|
&'kvs self,
|
|
visitor: &mut dyn log::kv::Visitor<'kvs>,
|
|
) -> Result<(), log::kv::Error> {
|
|
visitor.visit_pair("parent_id".into(), self.parent_id.into())?;
|
|
visitor.visit_pair("child_id".into(), self.child_id.into())?;
|
|
Ok(())
|
|
}
|
|
}
|
|
|
|
pub fn print(msg: Arguments<'_>, key_values: impl log::kv::Source) {
|
|
log::logger().log(
|
|
&log::Record::builder()
|
|
.args(msg)
|
|
.key_values(&key_values)
|
|
.level(log::Level::Trace)
|
|
.target(module_path!())
|
|
.module_path(Some(module_path!()))
|
|
.file(Some(file!()))
|
|
.line(Some(line!()))
|
|
.build(),
|
|
);
|
|
}
|