Spaces:
Sleeping
Sleeping
| import logging | |
| import datetime | |
| from pathlib import Path | |
| class Logger: | |
| def set_logger() -> logging.Logger: | |
| """ | |
| Configure and return a logger with a file handler that writes to logs/<current date-time>.txt | |
| Returns: | |
| logging.Logger: Configured logger instance | |
| """ | |
| # Create logger | |
| logger = logging.getLogger("Alfred") | |
| logger.setLevel(logging.INFO) | |
| # Create formatter | |
| formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') | |
| # Create logs directory if it doesn't exist | |
| logs_dir = Path('logs') | |
| logs_dir.mkdir(exist_ok=True) | |
| # Generate log filename with current date-time | |
| current_time = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S") | |
| log_filename = f"{current_time}.txt" | |
| log_filepath = logs_dir / log_filename | |
| # Create file handler with UTF-8 encoding to handle all Unicode characters | |
| file_handler = logging.FileHandler(log_filepath, encoding='utf-8') | |
| file_handler.setLevel(logging.INFO) | |
| file_handler.setFormatter(formatter) | |
| # Add handler to logger | |
| logger.addHandler(file_handler) | |
| logger.info(f"Logging started at {current_time}") | |
| return logger |