From 9e74e6f9139f56ddb07c6c759d7c52fc24545458 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Mon, 2 Mar 2026 12:13:59 -0500 Subject: [PATCH] Add `--debug` global CLI flag to switch log level from INFO to DEBUG Co-Authored-By: Claude Opus 4.6 (1M context) --- crates/arc-cli/src/logging.rs | 6 ++++-- crates/arc-cli/src/main.rs | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/crates/arc-cli/src/logging.rs b/crates/arc-cli/src/logging.rs index d7d603e6c..28cf23bdd 100644 --- a/crates/arc-cli/src/logging.rs +++ b/crates/arc-cli/src/logging.rs @@ -1,8 +1,10 @@ use anyhow::{Context, Result}; use tracing_subscriber::{fmt, layer::SubscriberExt, util::SubscriberInitExt, EnvFilter}; -pub fn init_tracing() -> Result<()> { - let filter = EnvFilter::try_from_env("ARC_LOG").unwrap_or_else(|_| EnvFilter::new("info")); +pub fn init_tracing(debug: bool) -> Result<()> { + let default_level = if debug { "debug" } else { "info" }; + let filter = + EnvFilter::try_from_env("ARC_LOG").unwrap_or_else(|_| EnvFilter::new(default_level)); let log_dir = dirs::home_dir() .map(|h| h.join(".arc").join("logs")) diff --git a/crates/arc-cli/src/main.rs b/crates/arc-cli/src/main.rs index 4b59bc845..acca195ae 100644 --- a/crates/arc-cli/src/main.rs +++ b/crates/arc-cli/src/main.rs @@ -11,6 +11,10 @@ struct Cli { #[arg(long, global = true)] no_dotenv: bool, + /// Enable DEBUG-level logging (default is INFO) + #[arg(long, global = true)] + debug: bool, + #[command(subcommand)] command: Command, } @@ -65,7 +69,7 @@ async fn main() -> Result<()> { dotenvy::dotenv().ok(); } - if let Err(err) = logging::init_tracing() { + if let Err(err) = logging::init_tracing(cli.debug) { eprintln!("Warning: failed to initialize logging: {err:#}"); }