一尘不染

您如何获得Golang程序来打印刚刚调用的错误的行号?

go

我试图用Golang程序抛出错误,log.Fatal但同时log.Fatal也没有打印出log.Fatal运行行。无法访问名为log.Fatal的行号吗?即有没有办法在抛出错误时获取行号?

我试图用谷歌搜索,但不确定如何。我能得到的最好的结果是打印堆栈跟踪信息,我认为这很好,但可能有点过多。我也不想debug.PrintStack()每次都需要行号时就写东西,我只是感到惊讶,没有任何内置函数可以用于这种log.FatalStackTrace()或非服装的东西。

另外,我不想制作自己的调试/错误处理工具的原因是,我不想让人们不得不学习如何使用我的特殊服装处理代码。我只想要一些标准,人们以后可以阅读我的代码,就像

“嗯,所以它抛出一个错误并执行X …”

了解我的代码的人越少越好:)


阅读 712

收藏
2020-07-02

共1个答案

一尘不染

您可以在自定义记录仪上设置标志,也可以在默认值上设置为包含LlongfileLshortfile

// to change the flags on the default logger
log.SetFlags(log.LstdFlags | log.Lshortfile)
2020-07-02