| """ |
| 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) |
| |
| |
| if logger.handlers: |
| return logger |
| |
| logger.setLevel(getattr(logging, Config.LOG_LEVEL)) |
| |
| |
| formatter = logging.Formatter( |
| '%(asctime)s - %(name)s - %(levelname)s - %(message)s' |
| ) |
| |
| |
| console_handler = logging.StreamHandler(sys.stdout) |
| console_handler.setFormatter(formatter) |
| logger.addHandler(console_handler) |
| |
| |
| 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 |
|
|