feat: 站点 JSON、语音终端 WebSocket 指派与客户端联调
- 用 OR_SITE_CONFIG_JSON_FILE 统一术间配置(video_rtsp_urls + voice_or_room_bindings) - VoiceTerminalHub:assignment、WS 推送与 HTTP 查询;开录/停录后 notify - 一键联调 orchestrate-and-start 与 /client/surgeries/start 共用指派逻辑,修复 demo 路径不发 WS - 语音桌面端:SIGINT 退出、shutdown 清理、仅 WS 指派、固定 pending 轮询间隔、界面仅保留录音时长 - 新增/调整契约与绑定测试,文档与示例配置同步 Made-with: Cursor
This commit is contained in:
35
voice_confirmation_client/logging_config.py
Normal file
35
voice_confirmation_client/logging_config.py
Normal file
@@ -0,0 +1,35 @@
|
||||
"""桌面客户端 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,
|
||||
)
|
||||
Reference in New Issue
Block a user