Crate clap_verbosity_flag2

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

You can also customize the default logging level:

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
TraceLevel
Default to log::Level::Trace
Verbosity
Logging flags to #[command(flatte)] 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