"""Central logging configuration for xIQA.""" from __future__ import annotations import logging import os import sys _CONFIGURED = False def setup_logging(level: int | str | None = None) -> None: """Configure root logger with a standard format. """ global _CONFIGURED if level is None: level_name = os.environ.get('XIQA_LOG_LEVEL', 'INFO').upper() level = getattr(logging, level_name, logging.INFO) root = logging.getLogger() root.setLevel(level) if _CONFIGURED: return handler = logging.StreamHandler(sys.stderr) handler.setFormatter(logging.Formatter('%(levelname)s [%(name)s] %(message)s')) root.addHandler(handler) _CONFIGURED = True def get_logger(name: str) -> logging.Logger: """Return a module logger, configuring root logging on first use.""" setup_logging() return logging.getLogger(name)