Hasty Briefsbeta

双语

Building Slogbox

10 days ago
  • #Go programming
  • #slog
  • #logging
  • slogbox 是一个结构化的日志处理器,灵感来源于 Go 语言的 runtime/trace.FlightRecorder,它将最近的日志存储在固定大小的环形缓冲区中。
  • 为了灵活性,它存储原始的 slog.Record 值,仅在读取时进行序列化,并在记录日志时解析动态属性以确保准确性。
  • 设计上优先考虑写入性能,使用互斥锁处理并发,并提供高效的快照功能,通过二分查找实现按时间筛选,以及为派生处理器共享缓冲区。
  • 它支持基于日志级别的触发式刷新、用于优雅关闭的显式刷新,以及用于调试的 HTTP 端点,同时保持内存高效,适用于健康检查或黑盒记录。
  • 应用场景包括健康检查端点、调试、轻量级服务以及多处理器配置,但不适用于持久化日志或跨实例聚合。