agAdvisor / src /utils /logging_config.py
tirtho149's picture
Deploy AgAdvisor
b30f068 verified
Raw
History Blame Contribute Delete
1.81 kB
"""
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()