Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何在Rust中为日志输出添加特定前缀?_Logging_Rust - Fatal编程技术网

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
,但我不确定你能做得更好


东京项目的
跟踪
板条箱有一个内置的
仪器
,可以在功能上使用。退房但它是一种全新的需要驯服的野兽;你已经被警告过了。