Hasty Briefsbeta

双语

Show HN: Dlg – Zero-cost printf-style debugging for Go

10 months ago
  • #logging
  • #debugging
  • #golang
  • dlg 提供了极简的API用于printf式调试,并在生产构建中完全消失
  • 零成本抽象:日志调用在生产版本中会被完全消除
  • 调试版本中接近零开销,采用性能优先的设计
  • 运行时可配置的堆栈跟踪生成(DLG_STACKTRACE=ERROR/ALWAYS)
  • 设计上保证并发安全,自定义写入器需实现sync.Locker接口
  • 极简API仅包含两个函数:Printf 和 SetOutput
  • 编译时不带dlg标签的情况下,所有日志调用都会被消除且无运行时开销
  • 调试版本根据运行时配置显示详细日志和堆栈跟踪
  • 自定义写入器通过实现sync.Locker可保证并发安全
  • 可验证的零成本:编译器在生产构建中会完全移除dlg调用