import logging import datetime from pathlib import Path class Logger: @staticmethod def set_logger() -> logging.Logger: """ Configure and return a logger with a file handler that writes to logs/.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