fix logging
This commit is contained in:
doms9 2026-01-06 18:24:02 -05:00
parent d231f8c02e
commit 00000d9dfc
3 changed files with 34 additions and 8 deletions

View file

@ -1,6 +1,11 @@
import logging
from logging.handlers import TimedRotatingFileHandler
from pathlib import Path
LOG_DIR = Path(__file__).parent.parent.parent / "logs"
LOG_DIR.mkdir(exist_ok=True)
LOG_FMT = (
"[%(asctime)s] "
"%(levelname)-8s "
@ -14,7 +19,6 @@ COLORS = {
"INFO": "\033[32m",
"WARNING": "\033[33m",
"ERROR": "\033[31m",
"CRITICAL": "\033[1;41m",
"reset": "\033[0m",
}
@ -40,18 +44,33 @@ def get_logger(name: str | None = None) -> logging.Logger:
logger = logging.getLogger(name)
if not logger.hasHandlers():
handler = logging.StreamHandler()
logger.setLevel(logging.INFO)
formatter = ColorFormatter(LOG_FMT, datefmt="%Y-%m-%d | %H:%M:%S")
if logger.hasHandlers():
return logger
handler.setFormatter(formatter)
formatting = {"fmt": LOG_FMT, "datefmt": "%Y-%m-%d | %H:%M:%S"}
logger.addHandler(handler)
file_handler = TimedRotatingFileHandler(
LOG_DIR / "fetch.log",
when="midnight",
interval=1,
backupCount=3,
encoding="utf-8",
utc=False,
)
logger.setLevel(logging.INFO)
file_handler.setFormatter(logging.Formatter(**formatting))
logger.propagate = False
console_handler = logging.StreamHandler()
console_handler.setFormatter(ColorFormatter(**formatting))
logger.addHandler(file_handler)
logger.addHandler(console_handler)
logger.propagate = False
return logger