""" Structured logging utilities for the datalake package. """ import logging from typing import Optional def setup_logger(name: str, level: str = "INFO") -> logging.Logger: """ Initialize logger with structured output. Args: name: Logger module name level: Logging level (INFO, DEBUG, WARNING, ERROR) Returns: Configured logger instance """ logger = logging.getLogger(name) # Avoid adding duplicate handlers if logger.handlers: return logger handler = logging.StreamHandler() formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(getattr(logging, level.upper(), logging.INFO)) return logger