作品索引 
logstream — 终端日志追踪工具
GoCobraLip Gloss
排查线上问题时经常要同时看好几个服务的日志,tail -f 开一排窗口又乱又难对照时间。logstream 把多个来源合并成一条按时间排序的统一时间线。
功能
- 多源合并:本地文件、stdin、SSH 远端文件可以同时跟随。
- 正则过滤与高亮:
--match过滤想看的行,--highlight给关键词上色,互不影响。 - 来源着色:每个日志源分配固定颜色,扫一眼就知道是哪台机器。
实现
核心是一个最小堆做 k 路归并,每个源一行一行进堆,按时间戳弹出。终端 UI 用 Lip Gloss 处理颜色与宽度截断,Cobra 管命令行参数。
bash
logstream follow app.log worker.log --match 'ERROR' --highlight 'timeout'
踩坑记录
goroutine 泄漏是最初版本的最大问题:关闭日志源时没有停掉读取协程。后来用 context.Context 统一生命周期,配合 goleak 在测试里兜底。