Goで現在のソースファイル名を取得する方法はありますか?そしてinstranceのためにfmt.Println
それ。 (C
で__FILE__
マクロを実行しているように)現在のファイル名を参照する
これは明らかにデバッグ用です。
Goで現在のソースファイル名を取得する方法はありますか?そしてinstranceのためにfmt.Println
それ。 (C
で__FILE__
マクロを実行しているように)現在のファイル名を参照する
これは明らかにデバッグ用です。
runtime.Caller(0)
は、いくつかの項目を返す必要があります。そのうちの1つは、呼び出された関数のファイル名です。
このパラメータは、この機能を別の関数に抽象化したいが、呼び出された場所のファイル名を取得したい場合にスキップする関数の深さを示します。デバッグ用
、ログ・パッケージを使用して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