Skip to main content
Glama
logging_config.py1.7 kB
"""Logging configuration for MCP Background Job Server. This module sets up structured logging to stderr for stdio transport compatibility. For MCP servers using stdio transport, all logging must go to stderr to avoid interfering with the protocol communication on stdout. """ import logging import sys from typing import Optional def setup_logging(level: str = "INFO", format_string: Optional[str] = None) -> None: """Set up logging configuration for the MCP server. Args: level: Log level (DEBUG, INFO, WARNING, ERROR, CRITICAL) format_string: Custom format string for log messages """ if format_string is None: format_string = ( "%(asctime)s - %(name)s - %(levelname)s - " "%(filename)s:%(lineno)d - %(message)s" ) # Remove any existing handlers to avoid duplicate logs root_logger = logging.getLogger() for handler in root_logger.handlers[:]: root_logger.removeHandler(handler) # Set up stderr handler for stdio transport compatibility handler = logging.StreamHandler(sys.stderr) handler.setFormatter(logging.Formatter(format_string)) # Configure root logger logging.basicConfig( level=getattr(logging, level.upper()), handlers=[handler], force=True ) # Set specific logger for this package logger = logging.getLogger("mcp_background_job") logger.setLevel(getattr(logging, level.upper())) def get_logger(name: str) -> logging.Logger: """Get a logger instance for the given name. Args: name: Logger name, typically __name__ Returns: Logger instance """ return logging.getLogger(f"mcp_background_job.{name}")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dylan-gluck/mcp-background-job'

If you have feedback or need assistance with the MCP directory API, please join our Discord server