Expand description

Easily add a --verbose flag to CLIs using Structopt

Examples

To get --quiet and --verbose flags through your entire program, just flatten Verbosity:

#[clap(flatten)]
verbose: Verbosity,

You can then use this to configure your logger:

let cli = Cli::parse();
env_logger::Builder::new()
    .filter_level(cli.verbose.log_level_filter())
    .init();

By default, this will only report errors.

  • -q silences output
  • -v show warnings
  • -vv show info
  • -vvv show debug
  • -vvvv show trace

You can also customize the default logging level:

use clap_verbosity_flag::{Verbosity, InfoLevel};

/// Le CLI
#[derive(Debug, Parser)]
struct Cli {
    #[clap(flatten)]
    verbose: Verbosity<InfoLevel>,
}

Or implement LogLevel yourself for more control.

Structs

Traits