1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
use crate::{Result, Error};
use fern::colors::{Color, ColoredLevelConfig};
pub fn init(file_output: bool) -> Result<()> {
let colors = ColoredLevelConfig::new()
.info(Color::Green)
.debug(Color::BrightBlue)
.trace(Color::BrightMagenta);
let mut logger = fern::Dispatch::new()
.level_for("serenity::voice::connection", log::LevelFilter::Error)
.chain(fern::Dispatch::new()
.format(move |out, message, record| {
out.finish(format_args!(
"{} [{}] [{}] {}",
chrono::Local::now().format("%_m/%_d/%y %l:%M:%S%P"),
colors.color(record.level()),
record.target(),
message
))
})
.level(log::LevelFilter::Warn)
.level_for("thulani", log::LevelFilter::Debug)
.chain(std::io::stdout())
);
if file_output {
logger = logger
.chain(fern::Dispatch::new()
.format(|out, message, record| {
out.finish(format_args!(
"{} [{}] [{}] {}",
chrono::Local::now().format("%_m/%_d/%y %l:%M:%S%P"),
record.level(),
record.target(),
message
))
})
.level(log::LevelFilter::Info)
.level_for("thulani", log::LevelFilter::Trace)
.chain(fern::log_file("thulani.log").expect("problem creating log file"))
);
}
logger
.apply()
.map_err(Error::from)
}
|