chiark / gitweb /
syslog: prep for printing level: Make a copy of the Record
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Sep 2022 18:19:27 +0000 (19:19 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 25 Sep 2022 11:07:23 +0000 (12:07 +0100)
This will provide us somewhere to add the level prefix.

No functional change yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/reporter.rs

index f4ab447e056936bffe75048d4f1e3f16c5c3f41b..4343c8d496c6bf1291a57a25b3e6986d144788ea 100644 (file)
@@ -59,7 +59,20 @@ impl<T> log::Log for LogWrapper<T> 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());
+        }
+      }
     }
   }