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 |