mirror of
https://github.com/kavishdevar/librepods.git
synced 2026-01-29 06:10:52 +00:00
30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
import logging
|
|
from logging import Formatter, LogRecord
|
|
from typing import Dict
|
|
|
|
class Colors:
|
|
RESET: str = "\033[0m"
|
|
BOLD: str = "\033[1m"
|
|
RED: str = "\033[91m"
|
|
GREEN: str = "\033[92m"
|
|
YELLOW: str = "\033[93m"
|
|
BLUE: str = "\033[94m"
|
|
MAGENTA: str = "\033[95m"
|
|
CYAN: str = "\033[96m"
|
|
WHITE: str = "\033[97m"
|
|
BG_BLACK: str = "\033[40m"
|
|
|
|
class ColorFormatter(Formatter):
|
|
FORMATS: Dict[int, str] = {
|
|
logging.DEBUG: f"{Colors.BLUE}[%(levelname)s] %(message)s{Colors.RESET}",
|
|
logging.INFO: f"{Colors.GREEN}%(message)s{Colors.RESET}",
|
|
logging.WARNING: f"{Colors.YELLOW}%(message)s{Colors.RESET}",
|
|
logging.ERROR: f"{Colors.RED}[%(levelname)s] %(message)s{Colors.RESET}",
|
|
logging.CRITICAL: f"{Colors.RED}{Colors.BOLD}[%(levelname)s] %(message)s{Colors.RESET}"
|
|
}
|
|
|
|
def format(self, record: LogRecord) -> str:
|
|
log_fmt: str = self.FORMATS.get(record.levelno)
|
|
formatter: Formatter = Formatter(log_fmt, datefmt="%H:%M:%S")
|
|
return formatter.format(record)
|