"""桌面客户端 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, )