IQA-Interpretation / log_config.py
dvarfe's picture
sync with github version
0705c62
Raw
History Blame Contribute Delete
890 Bytes
"""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)