Debugging 引用当前文件名

Debugging 引用当前文件名,debugging,go,Debugging,Go,有没有办法在Go中获取当前源文件名?对于instrancefmt.Printlnit。(就像您可以在C中使用\uuuu文件\uuuu宏那样。) 显然,这是为了调试目的。应该返回一些项,其中一项是调用它的函数的文件名 如果您想将此功能抽象为一个单独的函数,但又想获取从何处调用它的文件名,则该参数表示要跳过的函数的深度。应返回一些项,其中一项是从中调用它的函数的文件名 如果要将此功能抽象为一个单独的函数,但要获取调用它的文件名,则该参数表示要跳过的函数深度。要进行调试,请使用日志包并启用log.Ls

有没有办法在Go中获取当前源文件名?对于instrance
fmt.Println
it。(就像您可以在
C
中使用
\uuuu文件\uuuu
宏那样。)

显然,这是为了调试目的。

应该返回一些项,其中一项是调用它的函数的文件名

如果您想将此功能抽象为一个单独的函数,但又想获取从何处调用它的文件名,则该参数表示要跳过的函数的深度。

应返回一些项,其中一项是从中调用它的函数的文件名


如果要将此功能抽象为一个单独的函数,但要获取调用它的文件名,则该参数表示要跳过的函数深度。

要进行调试,请使用日志包并启用log.Lshortfile或log.Llongfile标志:

package main

import (
    "log"
    "os"
)

func main() {
    shortLogger := log.New(os.Stdout, "", log.LstdFlags|log.Lshortfile)
    shortLogger.Println("short")

    longLogger := log.New(os.Stdout, "", log.LstdFlags|log.Llongfile)
    longLogger.Println("long")
}

// 2009/11/10 23:00:00 main.go:10: short
// 2009/11/10 23:00:00 /tmp/sandbox813987715/main.go:13: long

要进行调试,请使用日志包并启用log.Lshortfile或log.Llongfile标志:

package main

import (
    "log"
    "os"
)

func main() {
    shortLogger := log.New(os.Stdout, "", log.LstdFlags|log.Lshortfile)
    shortLogger.Println("short")

    longLogger := log.New(os.Stdout, "", log.LstdFlags|log.Llongfile)
    longLogger.Println("long")
}

// 2009/11/10 23:00:00 main.go:10: short
// 2009/11/10 23:00:00 /tmp/sandbox813987715/main.go:13: long