Adding support for boldifying important logging messages

This commit is contained in:
Miroslav Stampar 2012-07-12 16:30:35 +02:00
parent b2fe1c30f8
commit 569c9214bf
4 changed files with 16 additions and 3 deletions

View File

@ -133,7 +133,7 @@ class ColorizingStreamHandler(logging.StreamHandler):
if bold: if bold:
params.append('1') params.append('1')
if params: if params and message:
if message.lstrip() != message: if message.lstrip() != message:
prefix = re.search(r"\s+", message).group(0) prefix = re.search(r"\s+", message).group(0)
message = message[len(prefix):] message = message[len(prefix):]

View File

@ -80,6 +80,7 @@ from lib.core.exception import sqlmapSyntaxException
from lib.core.log import FORMATTER from lib.core.log import FORMATTER
from lib.core.log import LOGGER_HANDLER from lib.core.log import LOGGER_HANDLER
from lib.core.optiondict import optDict 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 CUSTOM_INJECTION_MARK_CHAR
from lib.core.settings import DEFAULT_COOKIE_DELIMITER from lib.core.settings import DEFAULT_COOKIE_DELIMITER
from lib.core.settings import DEFAULT_GET_POST_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) kb.singleLogFlags.add(flag)
logger.log(level, message) 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): def setColor(message, bold=False):
retVal = message retVal = message
level = extractRegexResult(r"\[(?P<result>[A-Z ]+)\]", message) or kb.get("stickyLevel") level = extractRegexResult(r"\[(?P<result>[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: if bold:
retVal = colored(message, color=None, on_color=None, attrs=("bold",)) retVal = colored(message, color=None, on_color=None, attrs=("bold",))
elif level: elif level:

View File

@ -26,6 +26,7 @@ from extra.oset.pyoset import oset
from extra.socks import socks from extra.socks import socks
from lib.controller.checks import checkConnection from lib.controller.checks import checkConnection
from lib.core.common import Backend from lib.core.common import Backend
from lib.core.common import boldifyMessage
from lib.core.common import dataToStdout from lib.core.common import dataToStdout
from lib.core.common import getPublicTypeMembers from lib.core.common import getPublicTypeMembers
from lib.core.common import extractRegexResult from lib.core.common import extractRegexResult
@ -410,7 +411,7 @@ def __adjustLoggingFormatter():
return return
def format(record): def format(record):
_ = FORMATTER._format(record) _ = boldifyMessage(FORMATTER._format(record))
if kb.prependFlag: if kb.prependFlag:
_ = "\n%s" % _ _ = "\n%s" % _
kb.prependFlag = False kb.prependFlag = False

View File

@ -509,3 +509,6 @@ VALID_TIME_CHARS_RUN_THRESHOLD = 100
# Check for empty columns only if table is sufficiently large # Check for empty columns only if table is sufficiently large
CHECK_ZERO_COLUMNS_THRESHOLD = 10 CHECK_ZERO_COLUMNS_THRESHOLD = 10
# Boldify all logger messages containing these "patterns"
BOLD_PATTERNS = ("' injectable", "might be injectable", "' is vulnerable", "is not injectable")