mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-06-18 20:13:34 +03:00
no need for bold error and critical messages, red is already enough
This commit is contained in:
parent
fe61bdce75
commit
64143a146f
|
@ -18,22 +18,22 @@ class ColorizingStreamHandler(logging.StreamHandler):
|
||||||
'white': 7,
|
'white': 7,
|
||||||
}
|
}
|
||||||
|
|
||||||
#levels to (background, foreground, bold/intense)
|
# levels to (background, foreground, bold/intense)
|
||||||
if os.name == 'nt':
|
if os.name == 'nt':
|
||||||
level_map = {
|
level_map = {
|
||||||
logging.DEBUG: (None, 'blue', False),
|
logging.DEBUG: (None, 'blue', False),
|
||||||
logging.INFO: (None, 'green', False),
|
logging.INFO: (None, 'green', False),
|
||||||
logging.WARNING: (None, 'yellow', False),
|
logging.WARNING: (None, 'yellow', False),
|
||||||
logging.ERROR: (None, 'red', True),
|
logging.ERROR: (None, 'red', False),
|
||||||
logging.CRITICAL: ('red', 'white', True),
|
logging.CRITICAL: ('red', 'white', False)
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
level_map = {
|
level_map = {
|
||||||
logging.DEBUG: (None, 'blue', False),
|
logging.DEBUG: (None, 'blue', False),
|
||||||
logging.INFO: (None, 'green', False),
|
logging.INFO: (None, 'green', False),
|
||||||
logging.WARNING: (None, 'yellow', False),
|
logging.WARNING: (None, 'yellow', False),
|
||||||
logging.ERROR: (None, 'red', True),
|
logging.ERROR: (None, 'red', False),
|
||||||
logging.CRITICAL: ('red', 'white', True),
|
logging.CRITICAL: ('red', 'white', False)
|
||||||
}
|
}
|
||||||
csi = '\x1b['
|
csi = '\x1b['
|
||||||
reset = '\x1b[0m'
|
reset = '\x1b[0m'
|
||||||
|
@ -47,11 +47,13 @@ class ColorizingStreamHandler(logging.StreamHandler):
|
||||||
try:
|
try:
|
||||||
message = self.format(record)
|
message = self.format(record)
|
||||||
stream = self.stream
|
stream = self.stream
|
||||||
|
|
||||||
if not self.is_tty:
|
if not self.is_tty:
|
||||||
stream.write(message)
|
stream.write(message)
|
||||||
else:
|
else:
|
||||||
self.output_colorized(message)
|
self.output_colorized(message)
|
||||||
stream.write(getattr(self, 'terminator', '\n'))
|
stream.write(getattr(self, 'terminator', '\n'))
|
||||||
|
|
||||||
self.flush()
|
self.flush()
|
||||||
except (KeyboardInterrupt, SystemExit):
|
except (KeyboardInterrupt, SystemExit):
|
||||||
raise
|
raise
|
||||||
|
@ -83,19 +85,26 @@ class ColorizingStreamHandler(logging.StreamHandler):
|
||||||
write = self.stream.write
|
write = self.stream.write
|
||||||
h = None
|
h = None
|
||||||
fd = getattr(self.stream, 'fileno', None)
|
fd = getattr(self.stream, 'fileno', None)
|
||||||
|
|
||||||
if fd is not None:
|
if fd is not None:
|
||||||
fd = fd()
|
fd = fd()
|
||||||
|
|
||||||
if fd in (1, 2): # stdout or stderr
|
if fd in (1, 2): # stdout or stderr
|
||||||
h = ctypes.windll.kernel32.GetStdHandle(-10 - fd)
|
h = ctypes.windll.kernel32.GetStdHandle(-10 - fd)
|
||||||
|
|
||||||
while parts:
|
while parts:
|
||||||
text = parts.pop(0)
|
text = parts.pop(0)
|
||||||
|
|
||||||
if text:
|
if text:
|
||||||
write(text)
|
write(text)
|
||||||
|
|
||||||
if parts:
|
if parts:
|
||||||
params = parts.pop(0)
|
params = parts.pop(0)
|
||||||
|
|
||||||
if h is not None:
|
if h is not None:
|
||||||
params = [int(p) for p in params.split(';')]
|
params = [int(p) for p in params.split(';')]
|
||||||
color = 0
|
color = 0
|
||||||
|
|
||||||
for p in params:
|
for p in params:
|
||||||
if 40 <= p <= 47:
|
if 40 <= p <= 47:
|
||||||
color |= self.nt_color_map[p - 40] << 4
|
color |= self.nt_color_map[p - 40] << 4
|
||||||
|
@ -107,41 +116,35 @@ class ColorizingStreamHandler(logging.StreamHandler):
|
||||||
color = 0x07
|
color = 0x07
|
||||||
else:
|
else:
|
||||||
pass # error condition ignored
|
pass # error condition ignored
|
||||||
|
|
||||||
ctypes.windll.kernel32.SetConsoleTextAttribute(h, color)
|
ctypes.windll.kernel32.SetConsoleTextAttribute(h, color)
|
||||||
|
|
||||||
def colorize(self, message, record):
|
def colorize(self, message, record):
|
||||||
if record.levelno in self.level_map:
|
if record.levelno in self.level_map:
|
||||||
bg, fg, bold = self.level_map[record.levelno]
|
bg, fg, bold = self.level_map[record.levelno]
|
||||||
params = []
|
params = []
|
||||||
|
|
||||||
if bg in self.color_map:
|
if bg in self.color_map:
|
||||||
params.append(str(self.color_map[bg] + 40))
|
params.append(str(self.color_map[bg] + 40))
|
||||||
|
|
||||||
if fg in self.color_map:
|
if fg in self.color_map:
|
||||||
params.append(str(self.color_map[fg] + 30))
|
params.append(str(self.color_map[fg] + 30))
|
||||||
|
|
||||||
if bold:
|
if bold:
|
||||||
params.append('1')
|
params.append('1')
|
||||||
|
|
||||||
if params:
|
if params:
|
||||||
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):]
|
||||||
else:
|
else:
|
||||||
prefix = ""
|
prefix = ""
|
||||||
|
|
||||||
message = "%s%s" % (prefix, ''.join((self.csi, ';'.join(params),
|
message = "%s%s" % (prefix, ''.join((self.csi, ';'.join(params),
|
||||||
'm', message, self.reset)))
|
'm', message, self.reset)))
|
||||||
|
|
||||||
return message
|
return message
|
||||||
|
|
||||||
def format(self, record):
|
def format(self, record):
|
||||||
message = logging.StreamHandler.format(self, record)
|
message = logging.StreamHandler.format(self, record)
|
||||||
return self.colorize(message, record)
|
return self.colorize(message, record)
|
||||||
|
|
||||||
def main():
|
|
||||||
root = logging.getLogger()
|
|
||||||
root.setLevel(logging.DEBUG)
|
|
||||||
root.addHandler(ColorizingStreamHandler())
|
|
||||||
logging.debug('DEBUG')
|
|
||||||
logging.info('INFO')
|
|
||||||
logging.warning('WARNING')
|
|
||||||
logging.error('ERROR')
|
|
||||||
logging.critical('CRITICAL')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user