formater/
formater.rs

1#[macro_use]
2extern crate nonblock_logger;
3extern crate chrono;
4
5use nonblock_logger::{log::Record, messages_in_channel, BaseFormater, FixedLevel, NonblockLogger};
6
7use std::time;
8
9fn main() {
10    let formater = BaseFormater::new().formater(format);
11
12    let mut handle = NonblockLogger::new()
13        .formater(formater)
14        .log_to_stdout()
15        .map_err(|e| eprintln!("failed to init nonblock_logger: {:?}", e))
16        .unwrap();
17
18    let now = time::Instant::now();
19
20    include!("log.snippet");
21
22    println!("join0_{}: {:?}", messages_in_channel(), now.elapsed());
23
24    handle.join();
25
26    println!("join1_{}: {:?}", messages_in_channel(), now.elapsed());
27}
28
29pub fn format(_: &BaseFormater, record: &Record) -> String {
30    let level = FixedLevel::new(record.level()).length(4);
31
32    // format!(
33    //     "[{} {}#{}:{} {}] {}\n",
34    //     chrono::Local::now().format("%Y-%m-%d %H:%M:%S.%3f"),
35    //     level,
36    //     record.module_path().unwrap_or("*"),
37    //     // record.file().unwrap_or("*"),
38    //     record.line().unwrap_or(0),
39    //     nonblock_logger::current_thread_name(),
40    //     record.args()
41    // )
42
43    format!(
44        "{} [#{}:{}] {}\n",
45        level,
46        // record.module_path().unwrap_or("*"),
47        record.file().unwrap_or("*"),
48        record.line().unwrap_or(0),
49        record.args()
50    )
51}