"""Logging utilities for MemoVault."""
import logging
import sys
from functools import lru_cache
@lru_cache()
def get_logger(name: str) -> logging.Logger:
"""Get a logger with the given name.
Args:
name: The name of the logger.
Returns:
A configured logger instance.
"""
logger = logging.getLogger(name)
if not logger.handlers:
handler = logging.StreamHandler(sys.stderr)
handler.setFormatter(
logging.Formatter(
"%(asctime)s - %(name)s - %(levelname)s - %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
)
logger.addHandler(handler)
# Get log level from environment
import os
log_level = os.environ.get("MEMOVAULT_LOG_LEVEL", "INFO").upper()
logger.setLevel(getattr(logging, log_level, logging.INFO))
return logger