00002e4740
- 新增 logger.rs(tracing-appender,日滚日志,.data/logs/) - service 子命令:等同 listen --llm 但日志同时写入文件 - systemd/ias.service 单元文件 - 迁移 0007:ALTER TABLE llm_usage ADD COLUMN IF NOT EXISTS 修复与 iPet 旧表的结构冲突 - ias usage 命令可正常查询 Token 统计 - 日志滚动保留 7 天,自动删除旧文件
39 lines
1.1 KiB
Rust
39 lines
1.1 KiB
Rust
use std::path::PathBuf;
|
|
use tracing_subscriber::layer::SubscriberExt;
|
|
use tracing_subscriber::util::SubscriberInitExt;
|
|
use tracing_subscriber::EnvFilter;
|
|
|
|
pub fn init_logger(log_dir: Option<&str>, with_file: bool) {
|
|
let env_filter = EnvFilter::try_from_default_env()
|
|
.unwrap_or_else(|_| EnvFilter::new("info"));
|
|
|
|
let terminal = tracing_subscriber::fmt::layer()
|
|
.with_target(false)
|
|
.with_ansi(true);
|
|
|
|
if with_file {
|
|
if let Some(dir) = log_dir {
|
|
let dir_path = PathBuf::from(dir);
|
|
std::fs::create_dir_all(&dir_path).ok();
|
|
|
|
let file_appender = tracing_appender::rolling::daily(&dir_path, "ias.log");
|
|
let file_layer = tracing_subscriber::fmt::layer()
|
|
.with_target(false)
|
|
.with_ansi(false)
|
|
.with_writer(file_appender);
|
|
|
|
tracing_subscriber::registry()
|
|
.with(env_filter)
|
|
.with(terminal)
|
|
.with(file_layer)
|
|
.init();
|
|
return;
|
|
}
|
|
}
|
|
|
|
tracing_subscriber::registry()
|
|
.with(env_filter)
|
|
.with(terminal)
|
|
.init();
|
|
}
|