25 lines
801 B
Python
25 lines
801 B
Python
|
import logging
|
||
|
import colorama
|
||
|
|
||
|
|
||
|
class NoTracebackStreamHandler(logging.StreamHandler):
|
||
|
def handle(self, record):
|
||
|
info, cache = record.exc_info, record.exc_text
|
||
|
record.exc_info, record.exc_text = None, None
|
||
|
|
||
|
if record.levelname == 'WARNING':
|
||
|
color = colorama.Fore.YELLOW
|
||
|
elif record.levelname in ['ERROR', 'EXCEPTION']:
|
||
|
color = colorama.Fore.LIGHTRED_EX
|
||
|
elif record.levelname == 'INFO':
|
||
|
color = colorama.Fore.LIGHTBLUE_EX
|
||
|
else:
|
||
|
color = colorama.Fore.WHITE
|
||
|
try:
|
||
|
print(color, end='', flush=True)
|
||
|
super().handle(record)
|
||
|
finally:
|
||
|
record.exc_info = info
|
||
|
record.exc_text = cache
|
||
|
print(colorama.Style.RESET_ALL, end='', flush=True)
|