import logging import os from logging.handlers import RotatingFileHandler _LOG_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "logs") os.makedirs(_LOG_DIR, exist_ok=True) _FMT = "%(asctime)s [%(levelname)s] %(message)s" _formatter = logging.Formatter(_FMT) _MAX_BYTES = 5 * 1024 * 1024 # 5 MB per file _BACKUP_COUNT = 3 def _rotating(filename, level): h = RotatingFileHandler( os.path.join(_LOG_DIR, filename), maxBytes=_MAX_BYTES, backupCount=_BACKUP_COUNT, encoding="utf-8", ) h.setLevel(level) h.setFormatter(_formatter) return h _console = logging.StreamHandler() _console.setFormatter(_formatter) logging.basicConfig( level=logging.INFO, handlers=[ _rotating("app.log", logging.INFO), _rotating("error.log", logging.ERROR), _console, ], ) logger = logging.getLogger("main")