"""统一日志格式,便于 grep / 日志平台解析。""" from __future__ import annotations import logging import os def configure_logging() -> None: level_name = os.getenv("LOG_LEVEL", "INFO").upper() level = getattr(logging, level_name, logging.INFO) fmt = "%(asctime)s | %(levelname)s | %(name)s | %(message)s" datefmt = "%Y-%m-%d %H:%M:%S" root = logging.getLogger() if not root.handlers: handler = logging.StreamHandler() handler.setFormatter(logging.Formatter(fmt=fmt, datefmt=datefmt)) root.addHandler(handler) root.setLevel(level) # 降噪:第三方库默认 WARNING logging.getLogger("httpx").setLevel(logging.WARNING) logging.getLogger("httpcore").setLevel(logging.WARNING) logging.getLogger("openai").setLevel(logging.WARNING)