From 569c9214bf7fef1f230a4d0a781658b217722726 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Thu, 12 Jul 2012 16:30:35 +0200 Subject: [PATCH] Adding support for boldifying important logging messages --- extra/ansistrm/ansistrm.py | 2 +- lib/core/common.py | 11 ++++++++++- lib/core/option.py | 3 ++- lib/core/settings.py | 3 +++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/extra/ansistrm/ansistrm.py b/extra/ansistrm/ansistrm.py index 97cdae649..62e03b37d 100644 --- a/extra/ansistrm/ansistrm.py +++ b/extra/ansistrm/ansistrm.py @@ -133,7 +133,7 @@ class ColorizingStreamHandler(logging.StreamHandler): if bold: params.append('1') - if params: + if params and message: if message.lstrip() != message: prefix = re.search(r"\s+", message).group(0) message = message[len(prefix):] diff --git a/lib/core/common.py b/lib/core/common.py index 7e5f5bb4d..51b49a0a5 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -80,6 +80,7 @@ from lib.core.exception import sqlmapSyntaxException from lib.core.log import FORMATTER from lib.core.log import LOGGER_HANDLER from lib.core.optiondict import optDict +from lib.core.settings import BOLD_PATTERNS from lib.core.settings import CUSTOM_INJECTION_MARK_CHAR from lib.core.settings import DEFAULT_COOKIE_DELIMITER from lib.core.settings import DEFAULT_GET_POST_DELIMITER @@ -695,11 +696,19 @@ def singleTimeLogMessage(message, level=logging.INFO, flag=None): kb.singleLogFlags.add(flag) logger.log(level, message) +def boldifyMessage(message): + retVal = message + + if any(_ in message for _ in BOLD_PATTERNS): + retVal = setColor(message, True) + + return retVal + def setColor(message, bold=False): retVal = message level = extractRegexResult(r"\[(?P[A-Z ]+)\]", message) or kb.get("stickyLevel") - if hasattr(LOGGER_HANDLER, "level_map"): # colorizing handler + if message and hasattr(LOGGER_HANDLER, "level_map"): # colorizing handler if bold: retVal = colored(message, color=None, on_color=None, attrs=("bold",)) elif level: diff --git a/lib/core/option.py b/lib/core/option.py index 181e54131..4e8365823 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -26,6 +26,7 @@ from extra.oset.pyoset import oset from extra.socks import socks from lib.controller.checks import checkConnection from lib.core.common import Backend +from lib.core.common import boldifyMessage from lib.core.common import dataToStdout from lib.core.common import getPublicTypeMembers from lib.core.common import extractRegexResult @@ -410,7 +411,7 @@ def __adjustLoggingFormatter(): return def format(record): - _ = FORMATTER._format(record) + _ = boldifyMessage(FORMATTER._format(record)) if kb.prependFlag: _ = "\n%s" % _ kb.prependFlag = False diff --git a/lib/core/settings.py b/lib/core/settings.py index dc6dbbb77..8b23eaad3 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -509,3 +509,6 @@ VALID_TIME_CHARS_RUN_THRESHOLD = 100 # Check for empty columns only if table is sufficiently large CHECK_ZERO_COLUMNS_THRESHOLD = 10 + +# Boldify all logger messages containing these "patterns" +BOLD_PATTERNS = ("' injectable", "might be injectable", "' is vulnerable", "is not injectable")