kowalski_core/logging/
mod.rs

1use env_logger::Builder;
2use log::LevelFilter;
3use std::io::Write;
4
5/// Initialize the logging system with default settings
6pub fn init() {
7    Builder::new()
8        .format(|buf, record| {
9            writeln!(
10                buf,
11                "{} [{}] - {}",
12                chrono::Local::now().format("%Y-%m-%d %H:%M:%S"),
13                record.level(),
14                record.args()
15            )
16        })
17        .filter(None, LevelFilter::Info)
18        .init();
19}
20
21/// Initialize the logging system with custom settings
22pub fn init_with_level(level: LevelFilter) {
23    Builder::new()
24        .format(|buf, record| {
25            writeln!(
26                buf,
27                "{} [{}] - {}",
28                chrono::Local::now().format("%Y-%m-%d %H:%M:%S"),
29                record.level(),
30                record.args()
31            )
32        })
33        .filter(None, level)
34        .init();
35}
36
37/// Initialize the logging system with custom settings and module filters
38pub fn init_with_filters(filters: &[(&str, LevelFilter)]) {
39    let mut builder = Builder::new();
40    builder.format(|buf, record| {
41        writeln!(
42            buf,
43            "{} [{}] - {}",
44            chrono::Local::now().format("%Y-%m-%d %H:%M:%S"),
45            record.level(),
46            record.args()
47        )
48    });
49
50    for (module, level) in filters {
51        builder.filter(Some(module), *level);
52    }
53
54    builder.init();
55}