edwardium_logger 0.2.0

Another simple logger implementation
Documentation
use std::{
	io::{self, Write},
	time::Duration
};

use log::{Level, Record};

use super::{IgnoreList, Target};

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, record: &Record, duration_since_start: Duration) -> io::Result<()> {
		let string = crate::target::create_log_line(record, duration_since_start);
		writeln!(&mut io::stdout(), "{}", string)
	}

	fn flush(&self) -> io::Result<()> { io::stdout().flush() }
}