iptv/M3U8/scrape/logger.py

39 lines
894 B
Python
Raw Normal View History

2025-08-30 16:45:19 -04:00
import logging
log_format = "[%(asctime)s] %(levelname)-8s %(message)-70s %(filename)s:%(lineno)d"
colors = {
"DEBUG": "\033[37m",
"INFO": "\033[32m",
"WARNING": "\033[33m",
"ERROR": "\033[31m",
"CRITICAL": "\033[41m",
2025-08-31 08:29:01 -04:00
"reset": "\033[0m",
2025-08-30 16:45:19 -04:00
}
class ColorFormatter(logging.Formatter):
def format(self, record) -> str:
color = colors.get(record.levelname, "")
2025-08-31 08:29:01 -04:00
record.levelname = f"{color}{record.levelname}{colors['reset']}"
2025-08-30 16:45:19 -04:00
return super().format(record)
def get_logger(name: str = __name__) -> logging.Logger:
logger = logging.getLogger(name)
if not logger.hasHandlers():
handler = logging.StreamHandler()
formatter = ColorFormatter(log_format, datefmt="%Y-%m-%d | %H:%M:%S")
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.INFO)
return logger