Source code for owtf.utils.formatters
"""
owtf.utils.formatters
~~~~~~~~~~~~~~~~~~~~~
CLI string formatting
"""
import logging
# CUSTOM LOG LEVELS
LOG_LEVEL_TOOL = 25
# Terminal colors
TERMINAL_COLOR_BLUE = "\033[94m"
TERMINAL_COLOR_GREEN = "\033[92m"
TERMINAL_COLOR_YELLOW = "\033[93m"
TERMINAL_COLOR_RED = "\033[91m"
TERMINAL_COLOR_END = "\033[0m"
TERMINAL_COLOR_LIGHT_BLUE = "\033[96m"
[docs]class ConsoleFormatter(logging.Formatter):
"""
Custom formatter to show logging messages differently on Console
"""
error_fmt = TERMINAL_COLOR_RED + "[-] {}" + TERMINAL_COLOR_END
warn_fmt = TERMINAL_COLOR_YELLOW + "[!] {}" + TERMINAL_COLOR_END
debug_fmt = TERMINAL_COLOR_GREEN + "[*] {}" + TERMINAL_COLOR_END
info_fmt = TERMINAL_COLOR_BLUE + "[+] {}" + TERMINAL_COLOR_END
[docs] def format(self, record):
""" Choose format according to record level
:param record: Record to format
:type record: `str`
:return: Formatted string
:rtype: `str`
"""
# Replace the original message with one customized by logging level
if record.levelno == logging.DEBUG:
record.msg = self.debug_fmt.format(record.msg)
elif record.levelno == logging.INFO:
record.msg = self.info_fmt.format(record.msg)
elif record.levelno == logging.ERROR:
record.msg = self.error_fmt.format(record.msg)
elif record.levelno == logging.WARN:
record.msg = self.warn_fmt.format(record.msg)
# Call the original formatter class to do the grunt work
result = super(ConsoleFormatter, self).format(record)
return result
[docs]class FileFormatter(logging.Formatter):
"""
Custom formatter for log files
"""
def __init__(self, *args, **kwargs):
super(FileFormatter, self).__init__()
self._fmt = "[%(levelname)s] [%(asctime)s] " + "[File '%(filename)s', line %(lineno)s, in %(funcName)s] -" + " %(message)s"