在执行golang应用程序期间,命令行的显示被错误消息溢出 什么时候发生恐慌。 如果有很多goroutine跑,它可能会出现。
但是,我想知道的信息只是输出顶部的几行。 我如何限制我想要的功能?
谢谢。
哈利
答案 0 :(得分:2)
我想到了两个解决方案。你可以选择适合自己的东西。
Marc-Antoine Ruel - 出色的开发者 - 创建了panicparse。运行你的程序,将 stderr 分配给 stdout ,将其输入panicparse,你就可以了。
go run example.go 2>&1 | pp
Panicparse会对输出进行重复数据删除和降级> 50%,同时使其更具可读性。
查看自述文件中的屏幕截图。
如果您要查找的信息始终位于堆栈跟踪的顶部,那么可能只是将输出汇总到 head 的简单情况。
我们想要运行我们的计划;允许它像正常一样输出到 stdout / terminal,但是我们希望用 head 来限制恐慌显示的信息量。请记住,恐慌被写入 stderr 。因此,将 stderr 传递给流程替换应该适用于大多数系统:
go run example.go 2> >(head)