| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- //! Common CLI and logging utilities for CDK integration test binaries
- //!
- //! This module provides standardized CLI argument parsing and logging setup
- //! for integration test binaries.
- use clap::Parser;
- use tracing_subscriber::EnvFilter;
- /// Common CLI arguments for CDK integration test binaries
- #[derive(Parser, Debug)]
- pub struct CommonArgs {
- /// Enable logging (default is false)
- #[arg(long, default_value_t = false)]
- pub enable_logging: bool,
- /// Logging level when enabled (default is debug)
- #[arg(long, default_value = "debug")]
- pub log_level: tracing::Level,
- }
- /// Initialize logging based on CLI arguments
- pub fn init_logging(enable_logging: bool, log_level: tracing::Level) {
- if enable_logging {
- let default_filter = log_level.to_string();
- // Common filters to reduce noise
- let hyper_filter = "hyper=warn";
- let h2_filter = "h2=warn";
- let rustls_filter = "rustls=warn";
- let reqwest_filter = "reqwest=warn";
- let tower_filter = "tower_http=warn";
- let env_filter = EnvFilter::new(format!(
- "{default_filter},{hyper_filter},{h2_filter},{rustls_filter},{reqwest_filter},{tower_filter}"
- ));
- // Ok if successful, Err if already initialized
- let _ = tracing_subscriber::fmt()
- .with_env_filter(env_filter)
- .try_init();
- }
- }
|