# Centralized logging configuration. # Import get_logger() in any module instead of # creating logging configs repeatedly. import logging from pathlib import Path def get_logger(name: str): log_dir = Path("logs") log_dir.mkdir(exist_ok=True) logger = logging.getLogger(name) # Prevent duplicate handlers if logger.handlers: return logger logger.setLevel(logging.INFO) formatter = logging.Formatter( fmt=( "%(asctime)s | " "%(levelname)s | " "%(name)s | " "%(message)s" ), datefmt="%Y-%m-%d %H:%M:%S" ) # Console output console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) # File output file_handler = logging.FileHandler( "logs/training.log", mode="a", encoding="utf-8" ) file_handler.setFormatter(formatter) logger.addHandler(console_handler) logger.addHandler(file_handler) return logger