| | """ |
| | 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 |
| |
|