import logging import os import sys from logging.handlers import RotatingFileHandler LOG_DIR = "log" LOG_FILE = os.path.join(LOG_DIR, "umb.log") LOG_MAX_BYTES = 10 * 1024 * 1024 LOG_BACKUP_COUNT = 5 LOG_FORMAT = "%(asctime)s - %(levelname)s - %(name)s - %(funcName)s - %(message)s" def setup_logging(): os.makedirs(LOG_DIR, exist_ok=True) root_logger = logging.getLogger() root_logger.setLevel(logging.INFO) for handler in root_logger.handlers[:]: root_logger.removeHandler(handler) file_handler = RotatingFileHandler( LOG_FILE, maxBytes=LOG_MAX_BYTES, backupCount=LOG_BACKUP_COUNT, encoding="utf-8", ) file_handler.setLevel(logging.INFO) file_handler.setFormatter(logging.Formatter(LOG_FORMAT)) root_logger.addHandler(file_handler) stream_handler = logging.StreamHandler(sys.stdout) stream_handler.setLevel(logging.INFO) stream_handler.setFormatter(logging.Formatter(LOG_FORMAT)) root_logger.addHandler(stream_handler) logging.getLogger("aiogram").setLevel(logging.INFO) logging.getLogger("aiogram.dispatcher").setLevel(logging.INFO)