Source code for flint.logging

from __future__ import annotations

import logging

# Create logger
logging.captureWarnings(True)
[docs] logger = logging.getLogger("flint")
logger.setLevel(logging.INFO) # Create console handler and set level to debug
[docs] ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
[docs] class CustomFormatter(logging.Formatter): """A custom logger formatter"""
[docs] grey = "\x1b[38;20m"
[docs] blue = "\x1b[34;20m"
[docs] green = "\x1b[32;20m"
[docs] yellow = "\x1b[33;20m"
[docs] red = "\x1b[31;20m"
[docs] bold_red = "\x1b[31;1m"
[docs] reset = "\x1b[0m"
[docs] format_str = "%(asctime)s.%(msecs)03d %(module)s - %(funcName)s: %(message)s"
[docs] FORMATS = { logging.DEBUG: f"{blue}%(levelname)s{reset} {format_str}", logging.INFO: f"{green}%(levelname)s{reset} {format_str}", logging.WARNING: f"{yellow}%(levelname)s{reset} {format_str}", logging.ERROR: f"{red}%(levelname)s{reset} {format_str}", logging.CRITICAL: f"{bold_red}%(levelname)s{reset} {format_str}", }
[docs] def format(self, record): log_fmt = self.FORMATS.get(record.levelno) formatter = logging.Formatter(log_fmt, "%Y-%m-%d %H:%M:%S") return formatter.format(record)
# Add formatter to ch ch.setFormatter(CustomFormatter()) # Add ch to logger logger.addHandler(ch)