agent_core/core/
logging.rs1use tracing_appender::non_blocking::WorkerGuard;
2
3pub fn init_logging() -> Option<WorkerGuard> {
4 let log_dir = crate::config::get_active_config_dir();
5 if !log_dir.exists() {
6 let _ = std::fs::create_dir_all(&log_dir);
7 }
8
9 let file_appender = tracing_appender::rolling::daily(log_dir, "synaps.log");
10 let (non_blocking, guard) = tracing_appender::non_blocking(file_appender);
11
12 if let Err(e) = tracing_subscriber::fmt()
13 .with_env_filter(
14 tracing_subscriber::EnvFilter::from_default_env()
15 .add_directive("synaps_cli=debug".parse().expect("valid directive"))
16 .add_directive("agent_core=debug".parse().expect("valid directive"))
17 .add_directive("agent_engine=debug".parse().expect("valid directive"))
18 .add_directive("agent_tui=debug".parse().expect("valid directive"))
19 .add_directive("tracing=info".parse().expect("valid directive")),
20 )
21 .with_writer(non_blocking)
22 .with_target(false)
23 .with_thread_ids(true)
24 .with_ansi(false)
25 .try_init()
26 {
27 eprintln!("Failed to initialize logging: {}", e);
28 }
29
30 Some(guard)
31}