logger_setup.py•952 B
import logging
import os
from config import LOG_LEVEL, LOG_FILE
def get_logger(name: str) -> logging.Logger:
    level = getattr(logging, LOG_LEVEL, logging.INFO)
    # Ensure logs directory exists
    log_file_path = os.path.abspath(LOG_FILE)
    log_dir = os.path.dirname(log_file_path)
    if log_dir and not os.path.exists(log_dir):
        os.makedirs(log_dir, exist_ok=True)
    
    # Configure root logging once
    if not logging.getLogger().handlers:
        logging.basicConfig(
            level=level,
            format="%(asctime)s %(levelname)s [%(name)s] %(message)s"
        )
        file_handler = logging.FileHandler(log_file_path, encoding="utf-8")
        file_handler.setLevel(level)
        file_handler.setFormatter(logging.Formatter("%(asctime)s %(levelname)s [%(name)s] %(message)s"))
        logging.getLogger().addHandler(file_handler)
    logger = logging.getLogger(name)
    logger.setLevel(level)
    return logger