"""桌面客户端 loguru:终端 + 可选 GUI 日志区。"""
from __future__ import annotations
import sys
from collections.abc import Callable
from loguru import logger
def setup_voice_client_logging(
*,
gui_line_sink: Callable[[str], None] | None = None,
stderr_level: str = "INFO",
gui_level: str = "DEBUG",
) -> None:
"""初始化 sink:彩色 stderr + 可选一行一条写入 Qt(由 sink 内 Signal 线程安全投递)。"""
logger.remove()
logger.add(
sys.stderr,
format=(
"{time:HH:mm:ss} | "
"{level:<8} | "
"{name}:{function} | "
"{message}"
),
level=stderr_level,
colorize=sys.stderr.isatty(),
)
if gui_line_sink:
logger.add(
gui_line_sink,
format="{time:HH:mm:ss.SSS} | {level:<8} | {message}",
level=gui_level,
)