From e5191fd74039240d74a2088254e21ee969f9c22b Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 20 Apr 2018 15:14:57 +0800 Subject: [PATCH] fix #185: log hrun logs to specified file --- httprunner/cli.py | 5 ++++- httprunner/logger.py | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/httprunner/cli.py b/httprunner/cli.py index a8a368a7..7814de91 100644 --- a/httprunner/cli.py +++ b/httprunner/cli.py @@ -37,6 +37,9 @@ def main_hrun(): parser.add_argument( '--log-level', default='INFO', help="Specify logging level, default is INFO.") + parser.add_argument( + '--log-file', + help="Write logs to specified file path.") parser.add_argument( '--dot-env-path', help="Specify .env file path, which is useful for keeping production credentials.") @@ -54,7 +57,7 @@ def main_hrun(): help="Prettify JSON testset format.") args = parser.parse_args() - logger.setup_logger(args.log_level) + logger.setup_logger(args.log_level, args.log_file) if is_py2: logger.log_warning(get_python2_retire_msg()) diff --git a/httprunner/logger.py b/httprunner/logger.py index 9ea0700d..68d0f7db 100644 --- a/httprunner/logger.py +++ b/httprunner/logger.py @@ -16,7 +16,7 @@ log_colors_config = { 'CRITICAL': 'red', } -def setup_logger(log_level): +def setup_logger(log_level, log_file=None): """setup root logger with ColoredFormatter.""" level = getattr(logging, log_level.upper(), None) if not level: @@ -34,7 +34,11 @@ def setup_logger(log_level): log_colors=log_colors_config ) - handler = logging.StreamHandler() + if log_file: + handler = logging.FileHandler(log_file) + else: + handler = logging.StreamHandler() + handler.setFormatter(formatter) logging.root.addHandler(handler) logging.root.setLevel(level)