Skip to main content

lean_ctx/core/
logging.rs

1use tracing_subscriber::EnvFilter;
2
3/// Initialize the tracing subscriber for CLI or MCP server usage.
4///
5/// Respects `LEAN_CTX_LOG` and `RUST_LOG` environment variables for filter control.
6/// Defaults to `warn` level if neither is set.
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 specifically for MCP server mode (stderr output, INFO default).
19pub fn init_mcp_logging() {
20    let filter = std::env::var("LEAN_CTX_LOG")
21        .or_else(|_| std::env::var("RUST_LOG"))
22        .unwrap_or_else(|_| "info".to_string());
23
24    let _ = tracing_subscriber::fmt()
25        .with_env_filter(EnvFilter::new(filter))
26        .with_writer(std::io::stderr)
27        .try_init();
28}