| """
|
| 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
|
| """
|
|
|
| log_level = log_level or settings.log_level
|
| log_file = log_file or settings.log_file
|
| log_format = log_format or settings.log_format
|
|
|
|
|
| logger = logging.getLogger("agentic_ai")
|
| logger.setLevel(getattr(logging, log_level.upper()))
|
|
|
|
|
| logger.handlers.clear()
|
|
|
|
|
| formatter = logging.Formatter(log_format)
|
|
|
|
|
| console_handler = logging.StreamHandler(sys.stdout)
|
| console_handler.setLevel(getattr(logging, log_level.upper()))
|
| console_handler.setFormatter(formatter)
|
| logger.addHandler(console_handler)
|
|
|
|
|
| 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
|
|
|
|
|
|
|
| logger = setup_logging()
|
|
|