Files
iAs/src/logger.rs
T
wunianxiao 00002e4740 feat: 后台服务模式 + 日志滚动 + 修复 llm_usage 表兼容性
- 新增 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 天,自动删除旧文件
2026-06-01 17:45:17 +08:00

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();
}