Mercurial > piecrust2
changeset 97:00a9b24ca944
Add `--log-debug` option.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 07 Sep 2014 23:49:09 -0700 |
parents | 0445a2232de7 |
children | 5959a117a943 |
files | piecrust/main.py |
diffstat | 1 files changed, 17 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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)