Files
chatterino2/lib/twitch-eventsub-ws/ast/lib/logging.py

33 lines
973 B
Python

import logging
import sys
from colorama import Fore, Style
def init_logging(level=logging.DEBUG) -> None:
root = logging.getLogger()
root.setLevel(level)
handler = logging.StreamHandler(sys.stderr)
handler.setLevel(level)
colors = {
"WARNING": Fore.YELLOW,
"INFO": Fore.WHITE,
"DEBUG": Fore.BLUE,
"CRITICAL": Fore.YELLOW,
"ERROR": Fore.RED,
}
class ColoredFormatter(logging.Formatter):
def format(self, record: logging.LogRecord) -> str:
levelname = record.levelname
if levelname in colors:
levelname_color = Style.BRIGHT + colors[levelname] + levelname + Style.RESET_ALL
record.levelname = levelname_color
return logging.Formatter.format(self, record)
colored_formatter = ColoredFormatter("%(asctime)s %(levelname)-16s %(name)s: %(message)s")
handler.setFormatter(colored_formatter)
root.addHandler(handler)