import logging import sys def setup_logging(level: int = logging.INFO) -> None: """Configure structured application logging.""" fmt = "%(asctime)s | %(levelname)-8s | %(name)s | %(message)s" handler = logging.StreamHandler(sys.stdout) handler.setFormatter(logging.Formatter(fmt, datefmt="%Y-%m-%dT%H:%M:%S")) root = logging.getLogger() root.setLevel(level) # Avoid duplicate handlers if called more than once (e.g. in tests) if not root.handlers: root.addHandler(handler) # Quieten noisy libraries logging.getLogger("uvicorn.access").setLevel(logging.WARNING) def get_logger(name: str) -> logging.Logger: return logging.getLogger(name)