struct_log_self/common/
mod.rs

1use slog::*;
2use std::{fmt, result};
3
4pub struct PrintlnSerializer;
5
6impl Serializer for PrintlnSerializer {
7    fn emit_arguments(&mut self, key: Key, val: &fmt::Arguments) -> Result {
8        print!(", {}={}", key, val);
9        Ok(())
10    }
11}
12
13pub struct PrintlnDrain;
14
15impl Drain for PrintlnDrain {
16    type Ok = ();
17    type Err = ();
18
19    fn log(
20        &self,
21        record: &Record,
22        values: &OwnedKVList,
23    ) -> result::Result<Self::Ok, Self::Err> {
24
25        print!("{}", record.msg());
26
27        record
28            .kv()
29            .serialize(record, &mut PrintlnSerializer)
30            .unwrap();
31        values.serialize(record, &mut PrintlnSerializer).unwrap();
32
33        println!("");
34        Ok(())
35    }
36}