如何获取 golang 中显示的 fmt.Printf 或 fmt.Prinln 行号?

Lab*_*dor 2 go

请原谅我的英语。

我需要显示的行数fmt.Println在联合国去申请,因为我有很多fmt.Prinffmt.Println很多去文件。例子

package main

import "fmt"

func main() {
    fmt.Printf("hello golang")
}
Run Code Online (Sandbox Code Playgroud)

我希望输出像这样显示。

main.go [line 6] hello golang
Run Code Online (Sandbox Code Playgroud)

即,文件名、fmt.Printf 的行号和消息。

thw*_*hwd 5

得到的输出线号最简单的方法是使用标准的日志包文件名称输出启用

将此函数添加到您的程序以启用文件名输出。该函数在应用程序启动时自动调用。

func init() {
    log.SetFlags(log.Flags() | log.Llongfile)
}
Run Code Online (Sandbox Code Playgroud)

使用log包中的log.Printf等函数打印消息:

func main() {
    log.Printf("hello golang")
}
Run Code Online (Sandbox Code Playgroud)

在操场上运行它

使用LshortFile而不是LlongFile来获得更短的文件名输出。

在操场上运行它

如果这些格式都不能满足您的需求,则从日志包中复制代码并根据需要进行调整。