"""
Logger configuration for MCP-MAF
"""
import logging
import sys
from typing import Optional
def setup_logger(
name: str,
level: Optional[str] = None,
format_string: Optional[str] = None
) -> logging.Logger:
"""
Setup and configure logger
Args:
name: Logger name (usually __name__)
level: Log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
format_string: Custom format string
Returns:
Configured logger instance
"""
# Get logger
logger = logging.getLogger(name)
# Set level
if level is None:
import os
level = os.getenv("LOG_LEVEL", "INFO")
logger.setLevel(getattr(logging, level.upper()))
# Remove existing handlers
logger.handlers.clear()
# Create console handler
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(getattr(logging, level.upper()))
# Create formatter
if format_string is None:
format_string = (
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
formatter = logging.Formatter(format_string)
handler.setFormatter(formatter)
# Add handler to logger
logger.addHandler(handler)
return logger