From 28c3e68b5a3eb8f22229154e26b01077f53ae961 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Thu, 27 Jun 2019 17:18:04 +0200 Subject: [PATCH] Refactor TFWLog --- lib/tfw/config/log.py | 52 ++++++++++--------------------------------- 1 file changed, 12 insertions(+), 40 deletions(-) diff --git a/lib/tfw/config/log.py b/lib/tfw/config/log.py index 119f7b8..1c01a7f 100644 --- a/lib/tfw/config/log.py +++ b/lib/tfw/config/log.py @@ -1,29 +1,18 @@ # pylint: disable=bad-whitespace from sys import stderr -from collections import deque from datetime import datetime -from traceback import format_exception, walk_tb from logging import DEBUG, getLogger, Handler, Formatter, Filter from .envvars import TFWENV -class COLOR: - BLACK = '\033[30m' +class Color: GREY = '\033[30;1m' RED = '\033[31m' BOLDRED = '\033[31;1m' - GREEN = '\033[32m' BOLDGREEN = '\033[32;1m' - ORANGE = '\033[33m' YELLOW = '\033[33;1m' - BLUE = '\033[34m' - BOLDBLUE = '\033[34;1m' - MAGENTA = '\033[35m' - BOLDMAGENTA = '\033[35;1m' CYAN = '\033[36m' - BOLDCYAN = '\033[36;1m' - WHITE = '\033[37m' BOLDWHITE = '\033[37;1m' RESET = '\033[0m' @@ -63,17 +52,16 @@ class TFWLogHandler(Handler): class TFWLogFormatter(Formatter): severity_to_color = { - 'CRITICAL' : COLOR.BOLDRED, - 'ERROR' : COLOR.RED, - 'WARNING' : COLOR.YELLOW, - 'INFO' : COLOR.BOLDGREEN, - 'DEBUG' : COLOR.BOLDWHITE, - 'NOTSET' : COLOR.CYAN + 'CRITICAL' : Color.BOLDRED, + 'ERROR' : Color.RED, + 'WARNING' : Color.YELLOW, + 'INFO' : Color.BOLDGREEN, + 'DEBUG' : Color.BOLDWHITE, + 'NOTSET' : Color.CYAN } def __init__(self, limit): self.limit = limit - self.last_trace = None super().__init__() def format(self, record): @@ -87,23 +75,11 @@ class TFWLogFormatter(Formatter): short_message = record.msg long_message = record.msg - if record.exc_info: - current_trace = self.fetch_exception_origin(record.exc_info[2]) - if current_trace != self.last_trace: - self.last_trace = current_trace - trace = '\n'+''.join(format_exception(*record.exc_info)) - else: - trace = (f'\nSee previous traceback...\n' - f'{record.exc_info[0].__name__}: {record.exc_info[1]}') - else: - trace = '' - - short_entry = (f'[{COLOR.GREY}{date}{COLOR.RESET}|>' + short_entry = (f'[{Color.GREY}{date}{Color.RESET}|>' f'{self.severity_to_color[record.levelname]}{record.module}:' - f'{record.levelname.lower()}{COLOR.RESET}] {short_message}' - f'{trace}') + f'{record.levelname.lower()}{Color.RESET}] {short_message}') long_entry = (f'[{date}|>{record.module}:{record.levelname.lower()}] ' - f'{long_message}{trace}') + f'{long_message}') return short_entry, long_entry def trim(self, value): @@ -114,12 +90,8 @@ class TFWLogFormatter(Formatter): return value_str if len(value_str) <= self.limit else f'{value_str[:self.limit]}...' return value - @staticmethod - def fetch_exception_origin(trace): - return deque(walk_tb(trace), maxlen=1).pop() - -class TFWLogWhitelistFilter(Filter): +class WhitelistFilter(Filter): def __init__(self, names): self.names = names super().__init__() @@ -128,7 +100,7 @@ class TFWLogWhitelistFilter(Filter): return record.module in self.names -class TFWLogBlacklistFilter(Filter): +class BlacklistFilter(Filter): def __init__(self, names): self.names = names super().__init__()