From 0a4c0413ef0154cde2e3485ec0415e6069596a23 Mon Sep 17 00:00:00 2001 From: sigoden Date: Wed, 24 Apr 2024 07:16:56 +0800 Subject: feat: serve all LLMs as OpenAI-compatible API (#431) --- src/logger.rs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/logger.rs (limited to 'src/logger.rs') 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() +} -- cgit v1.2.3