Skip to main content

lean_ctx/core/
logging.rs

1use tracing_subscriber::EnvFilter;
2
3/// Initialize the tracing subscriber for CLI usage.
4///
5/// Respects `LEAN_CTX_LOG` and `RUST_LOG` environment variables for filter control.
6/// Defaults to `warn` level — keeps CLI output clean.
7pub fn init_logging() {
8    let filter = std::env::var("LEAN_CTX_LOG")
9        .or_else(|_| std::env::var("RUST_LOG"))
10        .unwrap_or_else(|_| "warn".to_string());
11
12    let _ = tracing_subscriber::fmt()
13        .with_env_filter(EnvFilter::new(filter))
14        .with_writer(std::io::stderr)
15        .try_init();
16}
17
18/// Initialize logging for daemon/MCP mode (stderr, defaults to `info`).
19/// Daemon logs go to a file, so verbosity is fine.
20pub fn init_mcp_logging() {
21    let filter = std::env::var("LEAN_CTX_LOG")
22        .or_else(|_| std::env::var("RUST_LOG"))
23        .unwrap_or_else(|_| "info".to_string());
24
25    let _ = tracing_subscriber::fmt()
26        .with_env_filter(EnvFilter::new(filter))
27        .with_writer(std::io::stderr)
28        .try_init();
29}