diff options
| author | sigoden <sigoden@gmail.com> | 2024-04-24 07:16:56 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-24 07:16:56 +0800 |
| commit | 0a4c0413ef0154cde2e3485ec0415e6069596a23 (patch) | |
| tree | 02527d5ee4b23b43a34bf90eeb817e1cc066d97c /src/logger.rs | |
| parent | 9c6c9f10a27d0993636b453f39d8934c95c5c2b2 (diff) | |
| download | aichat-0a4c0413ef0154cde2e3485ec0415e6069596a23.tar.gz | |
feat: serve all LLMs as OpenAI-compatible API (#431)
Diffstat (limited to 'src/logger.rs')
| -rw-r--r-- | src/logger.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/logger.rs b/src/logger.rs new file mode 100644 index 0000000..f7ef2f5 --- /dev/null +++ b/src/logger.rs @@ -0,0 +1,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() +} |
