""" Logging configuration for Core Code API """ import logging import sys from pathlib import Path def setup_logging(log_level: str = "INFO") -> None: """ Configure logging for the application Args: log_level: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) """ # Create logs directory if it doesn't exist log_dir = Path("logs") log_dir.mkdir(exist_ok=True) # Configure root logger logging.basicConfig( level=getattr(logging, log_level.upper()), format="%(asctime)s | %(levelname)-8s | %(name)s:%(funcName)s:%(lineno)d | %(message)s", datefmt="%Y-%m-%d %H:%M:%S", handlers=[ # Console handler logging.StreamHandler(sys.stdout), # File handler logging.FileHandler(log_dir / "app.log", encoding="utf-8") ] ) # Set specific log levels for third-party libraries logging.getLogger("httpx").setLevel(logging.WARNING) logging.getLogger("httpcore").setLevel(logging.WARNING) logging.getLogger("uvicorn.access").setLevel(logging.WARNING) def get_logger(name: str) -> logging.Logger: """ Get a logger instance Args: name: Logger name (typically __name__) Returns: Configured logger instance """ return logging.getLogger(name)