""" Logging utility for AI-Based Data Cleaner """ import logging import sys import os from datetime import datetime from config import Config def setup_logger(name: str = "data_cleaner") -> logging.Logger: """ Set up and configure logger Args: name: Logger name Returns: Configured logger instance """ logger = logging.getLogger(name) # Avoid duplicate handlers if logger.handlers: return logger logger.setLevel(getattr(logging, Config.LOG_LEVEL)) # Create formatter formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) # Console handler console_handler = logging.StreamHandler(sys.stdout) console_handler.setFormatter(formatter) logger.addHandler(console_handler) # File handler - create logs directory if it doesn't exist logs_dir = 'logs' os.makedirs(logs_dir, exist_ok=True) file_handler = logging.FileHandler( f'{logs_dir}/data_cleaner_{datetime.now().strftime("%Y%m%d")}.log' ) file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger