import logging import os import sys from logging.handlers import TimedRotatingFileHandler from indexer.config import LOG_LEVEL, LOG_DIR def setup_logging() -> logging.Logger: os.makedirs(LOG_DIR, exist_ok=True) level = getattr(logging, LOG_LEVEL.upper(), logging.INFO) fmt = logging.Formatter( "%(asctime)s [%(levelname)-8s] %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) file_handler = TimedRotatingFileHandler( os.path.join(LOG_DIR, "backup.log"), when="midnight", backupCount=90, encoding="utf-8", ) file_handler.setFormatter(fmt) console_handler = logging.StreamHandler(sys.stdout) console_handler.setFormatter(fmt) logging.root.setLevel(level) logging.root.handlers.clear() logging.root.addHandler(file_handler) logging.root.addHandler(console_handler) return logging.getLogger("backup")