1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
use log::{ Level, Record }; use std::io::{ self, Write }; use super::{ Target, IgnoreList }; pub struct StdoutTarget { level: Level, ignore_list: IgnoreList } impl StdoutTarget { pub fn new(level: Level, ignore_list: IgnoreList) -> Self { StdoutTarget { level, ignore_list } } } impl Default for StdoutTarget { fn default() -> Self { StdoutTarget { level: log::Level::Trace, ignore_list: Default::default() } } } impl Target for StdoutTarget { fn level(&self) -> Level { self.level } fn ignore(&self, record: &Record) -> bool { self.ignore_list.ignore(record) } fn write(&self, string: &str) -> io::Result<()> { writeln!(&mut io::stdout(), "{}", string) } fn flush(&self) -> io::Result<()> { io::stdout().flush() } }