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

1
.gitignore vendored
View file

@ -13,3 +13,4 @@ wheels/
.python-version .python-version
stuff/ stuff/
M3U8/scrapers/caches/* M3U8/scrapers/caches/*
*.log

View file

@ -49,6 +49,8 @@ def load_base() -> tuple[list[str], int]:
async def main() -> None: async def main() -> None:
log.info(f"{'=' * 10} Scraper Started {'=' * 10}")
base_m3u8, tvg_chno = load_base() base_m3u8, tvg_chno = load_base()
tasks = [ tasks = [
@ -144,6 +146,10 @@ async def main() -> None:
log.info(f"Events saved to {EVENTS_FILE.resolve()}") log.info(f"Events saved to {EVENTS_FILE.resolve()}")
for hndlr in log.handlers:
hndlr.flush()
hndlr.stream.write("\n")
if __name__ == "__main__": if __name__ == "__main__":
asyncio.run(main()) asyncio.run(main())

View file

@ -1,6 +1,11 @@
import logging import logging
from logging.handlers import TimedRotatingFileHandler
from pathlib import Path from pathlib import Path
LOG_DIR = Path(__file__).parent.parent.parent / "logs"
LOG_DIR.mkdir(exist_ok=True)
LOG_FMT = ( LOG_FMT = (
"[%(asctime)s] " "[%(asctime)s] "
"%(levelname)-8s " "%(levelname)-8s "
@ -14,7 +19,6 @@ COLORS = {
"INFO": "\033[32m", "INFO": "\033[32m",
"WARNING": "\033[33m", "WARNING": "\033[33m",
"ERROR": "\033[31m", "ERROR": "\033[31m",
"CRITICAL": "\033[1;41m",
"reset": "\033[0m", "reset": "\033[0m",
} }
@ -40,18 +44,33 @@ def get_logger(name: str | None = None) -> logging.Logger:
logger = logging.getLogger(name) logger = logging.getLogger(name)
if not logger.hasHandlers(): logger.setLevel(logging.INFO)
handler = logging.StreamHandler()
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 return logger