use std::io; use tracing_subscriber::{fmt, EnvFilter}; use crate::config::AppConfig; // 统一在独立模块初始化 tracing,避免入口层和后续测试入口重复散落 subscriber 配置。 pub fn init_tracing(config: &AppConfig) -> Result<(), io::Error> { let env_filter = EnvFilter::try_from_default_env() .or_else(|_| EnvFilter::try_new(config.log_filter.as_str())) .unwrap_or_else(|_| EnvFilter::new("info")); fmt() .with_env_filter(env_filter) .with_target(true) .compact() .try_init() .map_err(|error| io::Error::other(format!("初始化 tracing subscriber 失败:{error}"))) }