plogger/
lib.rs

1use chrono::Local;
2use env_logger::Builder;
3use log::LevelFilter;
4use std::io::Write;
5
6pub fn init(debug: bool) {
7    match debug {
8        true => {
9            debug_logger();
10        }
11        false => {
12            logger();
13        }
14    }
15}
16
17fn logger() {
18    Builder::new()
19        .format(|buf, record| {
20            writeln!(
21                buf,
22                "{} - {}",
23                Local::now().format("%Y-%m-%dT%H:%M:%S"),
24                record.args()
25            )
26        })
27        .filter(None, get_level_filter(false))
28        .init();
29}
30
31fn debug_logger() {
32    Builder::new()
33        .format(|buf, record| {
34            writeln!(
35                buf,
36                "{} [{}] - {}:{} - {}",
37                Local::now().format("%Y-%m-%dT%H:%M:%S"),
38                record.level(),
39                record.file().unwrap(),
40                record.line().unwrap(),
41                record.args()
42            )
43        })
44        .filter(None, get_level_filter(true))
45        .init();
46}
47
48fn get_level_filter(debug_mode: bool) -> LevelFilter {
49    if debug_mode {
50        return LevelFilter::Debug;
51    }
52    LevelFilter::Info
53}