"""Logging configuration for LLM Code Deployment system.""" import logging import sys from pathlib import Path from .config import settings def setup_logger(name: str) -> logging.Logger: """Set up logger with file and console handlers.""" logger = logging.getLogger(name) logger.setLevel(getattr(logging, settings.log_level.upper())) # Avoid adding handlers multiple times if logger.handlers: return logger # Console handler console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(logging.INFO) console_formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) console_handler.setFormatter(console_formatter) logger.addHandler(console_handler) # File handler settings.log_file.parent.mkdir(parents=True, exist_ok=True) file_handler = logging.FileHandler(settings.log_file) file_handler.setLevel(logging.DEBUG) file_formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) file_handler.setFormatter(file_formatter) logger.addHandler(file_handler) return logger