如何一次性将 log::Record 写入 csv::Writer 中?

发布于 2025-01-11 17:51:13 字数 377 浏览 0 评论 0原文

Log 特征中定义的 log 函数接受 Record 参数。 据我所知,为了获取字符串形式的有效负载,我需要执行以下操作:

let mut s = String::new();
write!(s, "{}", record.args());

下一步是使用 csv::Writer:

let mut writer = csv::Writer::from_path("/path/to/csv");
writer.write_field(s);
// optionally write more fields

最简单的方法是什么一次通过?

The log function defined in the Log trait accepts a Record parameter.
As far as I can tell, in order to obtain the payload as a string, I need to do something like:

let mut s = String::new();
write!(s, "{}", record.args());

The next step is to use csv::Writer:

let mut writer = csv::Writer::from_path("/path/to/csv");
writer.write_field(s);
// optionally write more fields

What would be the simplest way to do that in a single pass?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

许仙没带伞 2025-01-18 17:51:13

record.args() 返回 &std::fmt::Arguments,它实现了 Display 特征,以及 csv::Writer::write_field 接受一个字段 实施的AsRef<[u8]>。所以这是有效的:

let mut writer = csv::Writer::from_path("/path/to/csv")?;
writer.write_field(record.args().to_string())?;

record.args() returns &std::fmt::Arguments, it implemented Display trait, and csv::Writer::write_field accepts a field that implemented AsRef<[u8]>. So this is working:

let mut writer = csv::Writer::from_path("/path/to/csv")?;
writer.write_field(record.args().to_string())?;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文