20 lines
663 B
Rust
20 lines
663 B
Rust
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}")))
|
||
}
|