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.

Structs§

DebugLevel
Default to log::Level::Debug
ErrorLevel
Default to log::Level::Error
InfoLevel
Default to log::Level::Info
OffLevel
Default to no logging (i.e. None or log::LevelFilter::Off)
TraceLevel
Default to log::Level::Trace
Verbosity
Logging flags to #[command(flatten)] into your CLI
WarnLevel
Default to log::Level::Warn

Enums§

Level
An enum representing the available verbosity levels of the logger.
LevelFilter
An enum representing the available verbosity level filters of the logger.

Traits§

LogLevel
Customize the default log-level and associated help