fix: logger initialized mupltiple times

This commit is contained in:
debugtalk
2019-10-26 20:59:03 +08:00
parent 9badc25340
commit 195e85ebe0

View File

@@ -8,7 +8,7 @@ from colorlog import ColoredFormatter
init(autoreset=True) init(autoreset=True)
LOG_LEVEL = "INFO" LOG_LEVEL = "INFO"
LOG_FILE_PATH = None LOG_FILE_PATH = ""
log_colors_config = { log_colors_config = {
'DEBUG': 'cyan', 'DEBUG': 'cyan',
@@ -32,8 +32,9 @@ def setup_logger(log_level, log_file=None):
def get_logger(name=None): def get_logger(name=None):
"""setup logger with ColoredFormatter.""" """setup logger with ColoredFormatter."""
name = name or "httprunner" name = name or "httprunner"
if name in loggers: logger_key = "".join([name, LOG_LEVEL, LOG_FILE_PATH])
return loggers[name] if logger_key in loggers:
return loggers[logger_key]
_logger = logging.getLogger(name) _logger = logging.getLogger(name)
@@ -47,6 +48,7 @@ def get_logger(name=None):
if level >= logging.INFO: if level >= logging.INFO:
sys.tracebacklimit = 0 sys.tracebacklimit = 0
_logger.setLevel(level)
if LOG_FILE_PATH: if LOG_FILE_PATH:
log_dir = os.path.dirname(LOG_FILE_PATH) log_dir = os.path.dirname(LOG_FILE_PATH)
if not os.path.isdir(log_dir): if not os.path.isdir(log_dir):
@@ -63,9 +65,8 @@ def get_logger(name=None):
) )
handler.setFormatter(formatter) handler.setFormatter(formatter)
_logger.addHandler(handler) _logger.addHandler(handler)
_logger.setLevel(level)
loggers[name] = _logger loggers[logger_key] = _logger
return _logger return _logger