From: Ian Jackson Date: Sat, 24 Sep 2022 18:19:27 +0000 (+0100) Subject: syslog: prep for printing level: Make a copy of the Record X-Git-Tag: hippotat/1.0.0~69 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=29b7d5ddf51f1ead1d80ee9c8264539cd7bfd201;p=hippotat.git syslog: prep for printing level: Make a copy of the Record This will provide us somewhere to add the level prefix. No functional change yet. Signed-off-by: Ian Jackson --- diff --git a/src/reporter.rs b/src/reporter.rs index f4ab447..4343c8d 100644 --- a/src/reporter.rs +++ b/src/reporter.rs @@ -59,7 +59,20 @@ impl log::Log for LogWrapper where T: log::Log { fn log(&self, record: &log::Record<'_>) { if self.wanted(record.metadata()) { - self.output.log(record) + let mut wrap = log::Record::builder(); + + macro_rules! copy { { $( $f:ident ),* $(,)? } => { + $( wrap.$f(record.$f()); )* + } } + copy!{ + level, target, module_path, file, line + }; + match format_args!("{}", record.args()) { + args => { + wrap.args(args); + self.output.log(&wrap.build()); + } + } } }