import logging import os LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper() if LOG_LEVEL not in {"ERROR", "DEBUG", "INFO", "WARNING", "CRITICAL"}: LOG_LEVEL = "INFO" def setup_logger(name: str) -> logging.Logger: logger = logging.getLogger(name) if not logger.handlers: handler = logging.StreamHandler() formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(getattr(logging, LOG_LEVEL)) logger.debug(f"Logger {name} initialized with level {LOG_LEVEL}") return logger