import logging import logging.handlers from pathlib import Path from app.core.config import settings def setup_logging() -> None: """Set up logging configuration.""" log_dir = Path(settings.LOG_FILE).parent log_dir.mkdir(exist_ok=True) logger = logging.getLogger() logger.setLevel(settings.LOG_LEVEL.upper()) if logger.handlers: logger.handlers.clear() formatter = logging.Formatter(settings.LOG_FORMAT) console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) logger.addHandler(console_handler) file_handler = logging.handlers.RotatingFileHandler( settings.LOG_FILE, maxBytes=settings.LOG_MAX_SIZE, backupCount=settings.LOG_BACKUP_COUNT, encoding="utf-8", ) file_handler.setFormatter(formatter) logger.addHandler(file_handler) def get_logger(name: str) -> logging.Logger: """Get a logger instance.""" return logging.getLogger(name)