blob: f7ef2f5f15fc9cd98e3cf1b25065226163933a37 (
plain) (
blame)
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
|
use crate::config::WorkingMode;
use anyhow::Result;
use log::LevelFilter;
use simplelog::{format_description, Config as LogConfig, ConfigBuilder};
#[cfg(debug_assertions)]
pub fn setup_logger(working_mode: WorkingMode) -> Result<()> {
let config = build_config();
if working_mode == WorkingMode::Serve {
simplelog::SimpleLogger::init(LevelFilter::Debug, config)?;
} else {
let file = std::fs::File::create(crate::config::Config::local_path("debug.log")?)?;
simplelog::WriteLogger::init(LevelFilter::Debug, config, file)?;
}
Ok(())
}
#[cfg(not(debug_assertions))]
pub fn setup_logger(working_mode: WorkingMode) -> Result<()> {
let config = build_config();
if working_mode == WorkingMode::Serve {
simplelog::SimpleLogger::init(log::LevelFilter::Info, config)?;
}
Ok(())
}
fn build_config() -> LogConfig {
let log_filter = match std::env::var("AICHAT_LOG_FILTER") {
Ok(v) => v,
Err(_) => "aichat".into(),
};
ConfigBuilder::new()
.add_filter_allow(log_filter)
.set_time_format_custom(format_description!(
"[year]-[month]-[day]T[hour]:[minute]:[second].[subsecond digits:3]Z"
))
.set_thread_level(LevelFilter::Off)
.build()
}
|