""" Logging configuration for the Agentic AI system. """ import logging import sys from pathlib import Path from typing import Optional from config.settings import settings def setup_logging( log_level: Optional[str] = None, log_file: Optional[str] = None, log_format: Optional[str] = None ) -> logging.Logger: """ Set up logging configuration for the application. Args: log_level: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) log_file: Path to log file (optional) log_format: Log message format Returns: Configured logger instance """ # Use settings defaults if not provided log_level = log_level or settings.log_level log_file = log_file or settings.log_file log_format = log_format or settings.log_format # Create logger logger = logging.getLogger("agentic_ai") logger.setLevel(getattr(logging, log_level.upper())) # Clear existing handlers logger.handlers.clear() # Create formatter formatter = logging.Formatter(log_format) # Console handler console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(getattr(logging, log_level.upper())) console_handler.setFormatter(formatter) logger.addHandler(console_handler) # File handler (if specified) if log_file: log_path = Path(log_file) log_path.parent.mkdir(parents=True, exist_ok=True) file_handler = logging.FileHandler(log_path) file_handler.setLevel(getattr(logging, log_level.upper())) file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger # Global logger instance logger = setup_logging()