import logging import sys def setup_logger(name: str) -> logging.Logger: """ Sets up a standardized logger for application modules. Args: name: The name of the logger (usually __name__ of the module). Returns: A configured logging.Logger instance. """ # Create logger logger = logging.getLogger(name) logger.setLevel(logging.INFO) # Default level to INFO # Prevent logs from propagating to the root logger if already configured if not logger.handlers: # Create formatter formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) # Create console handler ch = logging.StreamHandler(sys.stdout) ch.setLevel(logging.INFO) ch.setFormatter(formatter) # Add handler to logger logger.addHandler(ch) return logger # Example usage (not run, just for reference): # logger = setup_logger(__name__) # logger.info("Logger initialized successfully.")