ShallowCodeResearch / mcp_hub /logging_config.py
HallD's picture
Upload 60 files
df2b222 verified
raw
history blame
1.49 kB
"""Logging configuration for the MCP Hub project."""
import logging
import sys
from datetime import datetime
from pathlib import Path
def setup_logging(
log_level: str = "INFO",
log_to_file: bool = True,
log_dir: str = "logs"
) -> logging.Logger:
"""Set up logging configuration."""
# Create logs directory if it doesn't exist
if log_to_file:
log_path = Path(log_dir)
log_path.mkdir(exist_ok=True)
# Create logger
logger = logging.getLogger("mcp_hub")
logger.setLevel(getattr(logging, log_level.upper()))
# Clear any existing handlers
logger.handlers = []
# Create formatter
formatter = logging.Formatter(
"%(asctime)s - %(name)s - %(levelname)s - %(funcName)s:%(lineno)d - %(message)s"
)
# 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 log_to_file:
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
file_handler = logging.FileHandler(
log_path / f"mcp_hub_{timestamp}.log"
)
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
return logger
# Create global logger instance
logger = setup_logging()