Crate clap_verbosity_flag

Source
Expand description

Control log level with a --verbose flag for your CLI

§Examples

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

#[command(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

By default, the log level is set to Error. To customize this to a different level, pass a type implementing the LogLevel trait to Verbosity:

use clap_verbosity_flag::{Verbosity, InfoLevel};

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

Or implement our LogLevel trait to customize the default log level and help output.

Modules§

loglog
tracingtracing

Structs§

DebugLevel
Default to VerbosityFilter::Debug
ErrorLevel
Default to VerbosityFilter::Error
InfoLevel
Default to VerbosityFilter::Info
OffLevel
Default to VerbosityFilter::Off (no logging)
TraceLevel
Default to VerbosityFilter::Trace
Verbosity
Logging flags to #[command(flatten)] into your CLI
WarnLevel
Default to VerbosityFilter::Warn

Enums§

VerbosityFilter
A representation of the log level filter.

Traits§

LogLevel
Customize the default log-level and associated help