Skip to main content
Glama

MCP-Expokossodo 2025

by gfxjef
logging.py1.85 kB
""" Structured logging configuration """ import logging import structlog import sys from typing import Any from pythonjsonlogger import jsonlogger from app.config import settings def setup_logging(): """Setup structured logging with JSON format""" # Clear any existing handlers root_logger = logging.getLogger() root_logger.handlers.clear() # Configure standard library logging logging.basicConfig( format="%(message)s", stream=sys.stdout, level=getattr(logging, settings.log_level.upper()) ) # Configure structlog structlog.configure( processors=[ # Add log level structlog.stdlib.add_log_level, # Add timestamp structlog.processors.TimeStamper(fmt="ISO"), # Add caller information in debug mode structlog.dev.set_exc_info if settings.debug else lambda _, __, evt_dict: evt_dict, # Convert to JSON structlog.processors.JSONRenderer() if not settings.debug else structlog.dev.ConsoleRenderer(), ], context_class=dict, logger_factory=structlog.stdlib.LoggerFactory(), wrapper_class=structlog.stdlib.BoundLogger, cache_logger_on_first_use=True, ) # Configure JSON formatter for non-structlog loggers if not settings.debug: json_formatter = jsonlogger.JsonFormatter( fmt='%(asctime)s %(name)s %(levelname)s %(message)s', datefmt='%Y-%m-%dT%H:%M:%S' ) # Apply JSON formatter to root logger for handler in root_logger.handlers: handler.setFormatter(json_formatter) # Get logger for this module logger = structlog.get_logger(__name__) logger.info("logging_configured", debug_mode=settings.debug, log_level=settings.log_level)

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/gfxjef/mcp_expokossodo2025'

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