Spaces:
Sleeping
Sleeping
| import logging | |
| import os | |
| from logging.handlers import RotatingFileHandler | |
| from from_root import from_root | |
| from datetime import datetime | |
| LOG_DIR = 'logs' | |
| # LOG_FILE = f"{datetime.now().strftime('%m_%d_%Y_%H_%M_%S')}.log" | |
| LOG_FILE="LOG.log" | |
| MAX_LOG_SIZE = 5 * 1024 * 1024 # 5 MB | |
| BACKUP_COUNT = 3 # Number of backup log files to keep | |
| # construct log file path | |
| log_dir_path=os.path.join(from_root(),LOG_DIR) | |
| os.makedirs(log_dir_path,exist_ok=True) | |
| log_file_path=os.path.join(log_dir_path,LOG_FILE) | |
| def configure_logger(): | |
| logger=logging.getLogger() | |
| logger.setLevel(logging.DEBUG) | |
| # Defining formate | |
| formater = logging.Formatter("[ %(asctime)s ] %(name)s - %(levelname)s - %(message)s") | |
| # file handleing with rotation | |
| file_handler=RotatingFileHandler(log_file_path, maxBytes=MAX_LOG_SIZE, backupCount=BACKUP_COUNT) | |
| file_handler.setFormatter(formater) | |
| file_handler.setLevel(logging.DEBUG) | |
| console_handler=logging.StreamHandler() | |
| console_handler.setFormatter(formater) | |
| console_handler.setLevel(logging.INFO) | |
| # Ensure console output uses UTF-8 to prevent character mapping errors on Windows | |
| if hasattr(console_handler.stream, 'reconfigure'): | |
| console_handler.stream.reconfigure(encoding='utf-8') | |
| logger.addHandler(file_handler) | |
| logger.addHandler(console_handler) | |
| # return logger | |
| configure_logger() |