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}