首页 >后端开发 >Golang >如何获取 Go 代码中的错误行号?

如何获取 Go 代码中的错误行号?

Linda Hamilton
Linda Hamilton原创
2024-12-13 18:40:19294浏览

How Can I Get the Line Number of Errors in My Go Code?

检索 Golang 中的错误行号

当您在 Golang 代码中遇到错误时,记录它们以进行调试至关重要。但是,log.Fatal 本身并不提供发生错误的行号。这可能会使追踪错误源变得困难。

要解决此问题,您可以修改日志标志以包含行号信息。操作方法如下:

  • 自定义记录器:您可以创建自定义记录器并设置其标志字段以包含所需的行号格式(Llongfile 表示完整路径,Lshortfile 表示文件名称)。
myLogger := log.New(os.Stdout, "", log.LstdFlags|log.Lshortfile)
  • 默认记录器: 您还可以修改默认记录器的标志以包含行号信息:
log.SetFlags(log.LstdFlags | log.Lshortfile)

通过设置这些标志,日志输出现在将包含有问题的行代码:

import (
    "log"
)

func main() {
    log.SetFlags(log.LstdFlags | log.Lshortfile)
    log.Fatal("Error occurred on line 14 in file my_file.go")
}

输出:

2022/09/20 13:52:15 my_file.go:14: Error occurred on line 14 in file my_file.go

这提供了更详细的错误消息,使识别和修复根本问题变得更加容易。请注意,此方法仅在出现致命错误(例如 log.Fatal)时才打印行号。对于其他日志级别(例如 log.Error),您可以使用 debug.PrintStack() 打印完整的调用堆栈。

以上是如何获取 Go 代码中的错误行号?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn