diff --git a/libs/pavexc_cli/src/main.rs b/libs/pavexc_cli/src/main.rs index a637d199..749f89c0 100644 --- a/libs/pavexc_cli/src/main.rs +++ b/libs/pavexc_cli/src/main.rs @@ -28,7 +28,7 @@ use tracing_subscriber::EnvFilter; const INTROSPECTION_HEADING: &str = "Introspection"; -#[derive(Parser)] +#[derive(Parser, Debug)] #[clap(author, version = VERSION, about, long_about = None)] struct Cli { #[clap(long, env = "PAVEXC_COLOR", default_value_t = Color::Auto)] @@ -104,7 +104,7 @@ impl FromStr for Color { } } -#[derive(Subcommand)] +#[derive(Subcommand, Debug)] enum Commands { /// Generate a server SDK crate according to an application blueprint. Generate { @@ -151,7 +151,7 @@ enum Commands { }, } -#[derive(Subcommand)] +#[derive(Subcommand, Debug)] pub enum SelfCommands { Setup { #[clap(long, env = "PAVEXC_DOCS_TOOLCHAIN", default_value = DEFAULT_DOCS_TOOLCHAIN)] @@ -254,7 +254,9 @@ fn main() -> Result> { .unwrap(); better_panic::install(); - let _guard = init_telemetry(cli.log_filter, cli.color, cli.log, cli.perf_profile); + let _guard = init_telemetry(cli.log_filter.clone(), cli.color, cli.log, cli.perf_profile); + + tracing::trace!(cli = ?cli, "`pavexc` CLI options and flags"); match cli.command { Commands::Generate { blueprint, diff --git a/libs/pavexc_cli/src/telemetry.rs b/libs/pavexc_cli/src/telemetry.rs index a9929c19..f0535ca3 100644 --- a/libs/pavexc_cli/src/telemetry.rs +++ b/libs/pavexc_cli/src/telemetry.rs @@ -46,6 +46,15 @@ where } } + if !keep { + // Check if the env filter matches + if let Some(metadata) = ctx.metadata(id) { + keep = >::enabled( + &self.base, metadata, &ctx, + ); + } + } + if !keep { let mut visitor = FieldVisitor { filters: &self.fields,