diff --git a/lib/core/common.py b/lib/core/common.py index 268609f96..867316184 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -697,21 +697,19 @@ def singleTimeLogMessage(message, level=logging.INFO, flag=None): def setColor(message, bold=False): retVal = message - level = extractRegexResult(r"\[(?P[A-Z ]+)\]", message) - - if level: - kb.currentMessage = level + level = extractRegexResult(r"\[(?P[A-Z ]+)\]", message) or kb.get("stickyLevel") if hasattr(LOGGER_HANDLER, "level_map"): # colorizing handler if bold: retVal = colored(message, color=None, on_color=None, attrs=("bold",)) - elif hasattr(kb, "currentMessage") and kb.currentMessage: - _ = LOGGER_HANDLER.level_map.get(logging.getLevelName(kb.currentMessage)) - + elif level: + _ = LOGGER_HANDLER.level_map.get(logging.getLevelName(level)) if _: background, foreground, bold = _ retVal = colored(message, color=foreground, on_color="on_%s" % background if background else None, attrs=("bold",) if bold else None) + kb.stickyLevel = level if message and message[-1] != "\n" else None + return retVal def dataToStdout(data, forceOutput=False, bold=False): diff --git a/lib/core/option.py b/lib/core/option.py index fc3b9dd62..b050ea76d 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -1436,7 +1436,6 @@ def __setKnowledgeBaseAttributes(flushAll=True): kb.commonOutputs = None kb.counters = {} - kb.currentMessage = None kb.data = AttribDict() kb.dataOutputFlag = False @@ -1511,6 +1510,7 @@ def __setKnowledgeBaseAttributes(flushAll=True): kb.singleLogFlags = set() kb.skipOthersDbms = None kb.stickyFlag = False + kb.stickyLevel = None kb.suppressResumeInfo = False kb.technique = None kb.testMode = False