From e7c3c157245d6a4d9aa9c36b92c9b768e50517b9 Mon Sep 17 00:00:00 2001 From: Darko Poljak Date: Wed, 30 Nov 2016 23:19:53 +0100 Subject: [PATCH] Deprecate -d, make -v log level counter. --- docs/src/man1/cdist.rst | 5 +++-- scripts/cdist | 30 ++++++++++++++++++++++-------- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/docs/src/man1/cdist.rst b/docs/src/man1/cdist.rst index ff09ea2f..08c49446 100644 --- a/docs/src/man1/cdist.rst +++ b/docs/src/man1/cdist.rst @@ -46,11 +46,12 @@ All commands accept the following options: .. option:: -d, --debug - Set log level to debug + Set log level to debug (deprecated, use -vvv instead) .. option:: -v, --verbose - Set log level to info, be more verbose + Increase log level, be more verbose. The order of levels from lowest to + greatest are: ERROR, WARNING, INFO, DEBUG. .. option:: -V, --version diff --git a/scripts/cdist b/scripts/cdist index 68084ca4..22acb033 100755 --- a/scripts/cdist +++ b/scripts/cdist @@ -21,6 +21,8 @@ # # +import collections +import logging # list of beta sub-commands BETA_COMMANDS = ['install', ] @@ -61,6 +63,15 @@ def check_beta(args_dict): raise cdist.CdistBetaRequired(cmd, arg) +_verbosity_level = { + 0: logging.ERROR, + 1: logging.WARNING, + 2: logging.INFO, +} +_verbosity_level = collections.defaultdict( + lambda: logging.DEBUG, _verbosity_level) + + def commandline(): """Parse command line""" import argparse @@ -78,11 +89,14 @@ def commandline(): # Options _all_ parsers have in common parser['loglevel'] = argparse.ArgumentParser(add_help=False) parser['loglevel'].add_argument( - '-d', '--debug', help='Set log level to debug', + '-d', '--debug', + help=('Set log level to debug (deprecated, use -vvv instead)'), action='store_true', default=False) parser['loglevel'].add_argument( - '-v', '--verbose', help='Set log level to info, be more verbose', - action='store_true', default=False) + '-v', '--verbose', + help=('Increase log level, be more verbose. The order of levels ' + 'from lowest to greatest are: ERROR, WARNING, INFO, DEBUG.'), + action='count', default=0) # Main subcommand parser parser['main'] = argparse.ArgumentParser( @@ -179,11 +193,12 @@ def commandline(): args = parser['main'].parse_args(sys.argv[1:]) - # Loglevels are handled globally in here and debug wins over verbose - if args.verbose: - logging.root.setLevel(logging.INFO) + # Loglevels are handled globally in here if args.debug: - logging.root.setLevel(logging.DEBUG) + log.warning("-d/--debug is deprecated, use -vvv instead") + args.verbose = 3 + + logging.root.setLevel(_verbosity_level[args.verbose]) log.debug(args) log.info("version %s" % cdist.VERSION) @@ -219,7 +234,6 @@ if __name__ == "__main__": exit_code = 0 try: - import logging import os import re import cdist