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
50
51
52
53
54
55
56
|
use crate::{
Error,
Result,
};
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)
.level_for("batch_delmeme", 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)
.level_for("batch_delmeme", log::LevelFilter::Trace)
.chain(fern::log_file("thulani.log").expect("problem creating log file")),
);
}
logger.apply().map_err(Error::from)
}
|