Skip to content

feat: structured logging with --debug flag + net.Listen for server addr resolution - #6

Merged
LiusCraft merged 1 commit into
mainfrom
feat/port-listen-addr
May 4, 2026
Merged

feat: structured logging with --debug flag + net.Listen for server addr resolution#6
LiusCraft merged 1 commit into
mainfrom
feat/port-listen-addr

Conversation

@LiusCraft

Copy link
Copy Markdown
Owner

Background

  • 项目目前使用标准库 log 包,缺乏分级日志(INFO/WARN/ERROR/DEBUG),调试 VAD 处理过程困难
  • Server 之前使用原始地址字符串,未反映实际绑定的端口号

Changes

  • 新增 logger/:基于 log/slog 封装,支持 DEBUG/INFO/WARN/ERROR 四级,通过 Init(debug) 控制级别
  • CLI 和 Server 均添加 --debug flag:开启后输出所有级别的日志(默认只输出 INFO 及以上)
  • slice/ 包添加调试日志:Split 分段裁剪/跳过、WriteWAV 文件写入、Resample 重采样参数
  • vad/ 包添加调试日志:Detector 创建配置、Process 分块处理、Flush 结果、Detect 音频状态、参数变更
  • vad/adaptive.go 添加调试日志:自适应检测器创建参数、baseline 映射、RMS 后过滤详情
  • Server WebSocket 调试日志:连接/关闭、消息类型、分块处理耗时、分段起止事件、状态变更
  • cmd/server: 使用 net.Listen 获取实际监听地址(随机端口场景)

Behavior Impact

  • CLI 和 Server 默认行为不变:不加 --debug 时日志输出级别与原 log.Printf 一致
  • 日志格式从 2024/01/01 12:00:00 message 变为 time=2024-01-01T12:00:00.000+08:00 level=INFO msg=message key=value
  • --debug 开启后会输出大量 VAD 内部处理细节,适合开发调试

Risks and Rollback

  • 低风险,仅影响日志输出格式和内容
  • 回滚方式:revert commit bf0c273

Verification

  • go vet ./logger/ ./slice/ ./html/ 通过
  • go test ./slice/ ./html/ 通过
  • gofmt 检查无格式问题
  • 完整构建因本地缺少 libonnxruntime 无法验证,Go 代码编译通过

Notes

  • 日志包包含 init() 函数默认初始化 Info 级别 logger,避免测试中 nil pointer
  • log.Fatalf 统一替换为 logger.Fatal(),内部调用 os.Exit(1)

Introduce log/slog-based logger package with DEBUG/INFO/WARN/ERROR levels.
Both CLI and server support --debug flag to enable diagnostic output.
Add debug logging throughout slice, vad, and adaptive-vad packages
to aid troubleshooting and visibility into internal processing.
@LiusCraft
LiusCraft force-pushed the feat/port-listen-addr branch from bf0c273 to 2ca1404 Compare May 4, 2026 15:25
@LiusCraft
LiusCraft merged commit fd4c6ba into main May 4, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant