gpt4 book ai didi

logging - 使用log4rs将每个主机变量附加到Rust中的所有日志消息

转载 作者:行者123 更新时间:2023-12-03 11:47:09 24 4
gpt4 key购买 nike

我是Rust的新手,并使用log4rs库生成日志消息,并希望在编写的每个日志消息中插入一个“每主机唯一”变量。
我已经看到提供的pattern encoder允许我通过修改MDC插入任意变量,但是我的应用程序创建了多个线程,并且我担心在将来的开发中忘记在这些线程之一中传递/初始化MDC。
有没有一种方法可以在所有日志记录消息中插入任意的每主机变量?
我正在使用配置生成器而不是YAML配置。

最佳答案

我意识到我可以将编码器字符串生成为变量,以传递给PatternEncoder。
例如,

    let mut encoder_string = String::from("{d(%d %b %Y %H:%M:%S%.3f)} {l}");
let hostvar = <<function to get per-host variable>>;
encoder_string.push_str(&hostvar);
encoder_string.push_str("{P} {T} - {m}{n}");

// See https://docs.rs/log4rs/*/log4rs/encode/pattern/index.html
let encoder = Box::new(PatternEncoder::new(
&encoder_string,
));

关于logging - 使用log4rs将每个主机变量附加到Rust中的所有日志消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65329579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com