package main
import (
"fmt"
"path"
"runtime"
)
func main() {
a, b, c := GetLocation()
fmt.Println("---------------------")
fmt.Println(a) // main.go
fmt.Println("---------------------")
fmt.Println(b) // main.main
fmt.Println("---------------------")
fmt.Println(c) // 10
fmt.Println("---------------------")
}
func GetLocation() (fileName, funcName string, line int) {
skip := 1
pc, file, line, ok := runtime.Caller(skip)
if !ok {
fmt.Println("get info failed")
return
}
// fmt.Println(pc, file)
fileName = path.Base(file)
funcName = runtime.FuncForPC(pc).Name()
return
}