#[macro_use]
extern crate nonblock_logger;
extern crate chrono;
use nonblock_logger::{log::Record, messages_in_channel, BaseFormater, FixedLevel, NonblockLogger};
use std::time;
fn main() {
let formater = BaseFormater::new().formater(format);
let mut handle = NonblockLogger::new()
.formater(formater)
.log_to_stdout()
.map_err(|e| eprintln!("failed to init nonblock_logger: {:?}", e))
.unwrap();
let now = time::Instant::now();
include!("log.snippet");
println!("join0_{}: {:?}", messages_in_channel(), now.elapsed());
handle.join();
println!("join1_{}: {:?}", messages_in_channel(), now.elapsed());
}
pub fn format(_: &BaseFormater, record: &Record) -> String {
let level = FixedLevel::new(record.level()).length(4);
format!(
"{} [#{}:{}] {}\n",
level,
record.file().unwrap_or("*"),
record.line().unwrap_or(0),
record.args()
)
}