Project Files
src / utils / logging.py
"""
utils/logging.py — Consistent structured logging for all modules.
All log output goes to stderr so it never pollutes the MCP stdio pipe.
"""
from __future__ import annotations
import logging
import sys
def get_logger(name: str) -> logging.Logger:
"""Return a logger that writes to stderr with a clean format."""
logger = logging.getLogger(name)
if not logger.handlers:
handler = logging.StreamHandler(sys.stderr)
handler.setFormatter(
logging.Formatter(
fmt="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
datefmt="%H:%M:%S",
)
)
logger.addHandler(handler)
logger.setLevel(logging.INFO)
return logger