# HG changeset patch # User Ludovic Chabant # Date 1410158949 25200 # Node ID 00a9b24ca94492746f38837d80280838e2987260 # Parent 0445a2232de73e6aee01cbca457ae76200655285 Add `--log-debug` option. diff -r 0445a2232de7 -r 00a9b24ca944 piecrust/main.py --- a/piecrust/main.py Sun Sep 07 23:48:57 2014 -0700 +++ b/piecrust/main.py Sun Sep 07 23:49:09 2014 -0700 @@ -65,12 +65,13 @@ class PreParsedChefArgs(object): def __init__(self, root=None, cache=True, debug=False, quiet=False, - log_file=None, config_variant=None): + log_file=None, log_debug=False, config_variant=None): self.root = root self.cache = cache self.debug = debug self.quiet = quiet self.log_file = log_file + self.log_debug = log_debug self.config_variant = config_variant @@ -96,6 +97,8 @@ elif arg == '--log': res.log_file = argv[i + 1] ++i + elif arg == '--log-debug': + res.log_debug = True elif arg == '--no-cache': res.cache = False elif arg == '--debug': @@ -115,17 +118,26 @@ colorama.init() root_logger = logging.getLogger() root_logger.setLevel(logging.INFO) + if res.debug or res.log_debug: + root_logger.setLevel(logging.DEBUG) + log_handler = logging.StreamHandler(sys.stdout) if res.debug: - root_logger.setLevel(logging.DEBUG) + log_handler.setLevel(logging.DEBUG) log_handler.setFormatter(ColoredFormatter("[%(name)s] %(message)s")) else: if res.quiet: - root_logger.setLevel(logging.WARNING) + log_handler.setLevel(logging.WARNING) + else: + log_handler.setLevel(logging.INFO) log_handler.setFormatter(ColoredFormatter("%(message)s")) root_logger.addHandler(log_handler) + if res.log_file: - root_logger.addHandler(logging.FileHandler(res.log_file, mode='w')) + file_handler = logging.FileHandler(res.log_file, mode='w') + root_logger.addHandler(file_handler) + if res.log_debug: + file_handler.setLevel(logging.DEBUG) return res @@ -162,6 +174,7 @@ parser.add_argument('--no-cache', help="When applicable, disable caching.", action='store_true') parser.add_argument('--quiet', help="Print only important information.", action='store_true') parser.add_argument('--log', help="Send log messages to the specified file.") + parser.add_argument('--log-debug', help="Log debug messages to the log file.", action='store_true') commands = sorted(app.plugin_loader.getCommands(), key=lambda c: c.name)