func getLocation(skip int)(fileName ,funcName string ,line int){
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
}
使用:
name, funcName, line := getLocation(2)
fmt.Printf("输出函数调用文件 file:%v;function:%v;line:%d",name,funcName,line)