Logging 如何在Rust中为日志输出添加特定前缀?
我有一个对象,希望每个日志输出都以该对象的某些状态作为前缀。但是为每个日志语句添加前缀非常不方便。有什么简单的方法来实现它吗 下面是示例代码Logging 如何在Rust中为日志输出添加特定前缀?,logging,rust,Logging,Rust,我有一个对象,希望每个日志输出都以该对象的某些状态作为前缀。但是为每个日志语句添加前缀非常不方便。有什么简单的方法来实现它吗 下面是示例代码 使用log::info; 结构对象{ id:i32, 名称:String, } impl Obj{ //为了简单起见,我可以使用'info!('receive{}from{}',item,from);'吗? fn call_me(&self,项:i32,from:String){ 信息!(“[id:{}][name:{}]receive{}from{}”,
使用log::info;
结构对象{
id:i32,
名称:String,
}
impl Obj{
//为了简单起见,我可以使用'info!('receive{}from{}',item,from);'吗?
fn call_me(&self,项:i32,from:String){
信息!(“[id:{}][name:{}]receive{}from{}”,self.id,self.name,item,from);
}
//…许多方法
}
任何帮助都将不胜感激 您可以为此编写宏:
#[macro_export]
macro_rules! log {
($sel:ident, $s:literal, $($arg:tt)*)
=>
(info!(concat!("[id: {}] [name: {}] ", $s), $sel.id, $sel.name, $($arg)*));
}
struct Obj {
id: i32,
name: String,
}
impl Obj {
fn call_me(&self, item: i32, from: String) {
log!(self, "receive {} from {}", item, from);
}
}
这并不完美,因为你仍然需要通过self
,但我不确定你能做得更好
东京项目的
跟踪
板条箱有一个内置的仪器
,可以在功能上使用。退房但它是一种全新的需要驯服的野兽;你已经被警告过了。