import logging import sys def setup_logger(name): """ Set up a logger with consistent formatting and settings Args: name (str): The name for the logger, typically __name__ Returns: logging.Logger: Configured logger instance """ logger = logging.getLogger(name) # Only configure handlers if they don't exist if not logger.handlers: # Console handler console_handler = logging.StreamHandler(sys.stdout) console_format = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) console_handler.setFormatter(console_format) logger.addHandler(console_handler) # Set level - could be read from environment variables logger.setLevel(logging.INFO) # Prevent propagation to root logger to avoid duplicate logs logger.propagate = False return logger