go-caller
is a library for collecting stack traces at the runtime.
package main
import (
"fmt"
"github.com/newmo-oss/go-caller"
)
func main() {
stacktrace := caller.New(1)
frame := stacktrace[0]
// main.go:10 main.main
fmt.Printf("%s:%d %s.%s\n", frame.File(), frame.Line(), frame.PkgName(), frame.FuncName())
}
MIT