36 lines
971 B
Python
36 lines
971 B
Python
|
|
"""桌面客户端 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=(
|
|||
|
|
"<green>{time:HH:mm:ss}</green> | "
|
|||
|
|
"<level>{level:<8}</level> | "
|
|||
|
|
"<cyan>{name}</cyan>:<cyan>{function}</cyan> | "
|
|||
|
|
"{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,
|
|||
|
|
)
|