You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
610 B
Go

package log
import (
"path"
"runtime"
"strings"
)
// FilelineCaller returns file and line for caller
func FilelineCaller(skip int) (file string, line int) {
for i := 0; i < 10; i++ {
_, file, line, ok := runtime.Caller(skip + i)
if !ok {
return "???", 0
}
//fmt.Printf("%s:%d\n", file, line)
if strings.Contains(file, "go-log/") {
continue
}
/*
// file = pkg/file.go
n := 0
for i := len(file) - 1; i > 0; i-- {
if file[i] == '/' {
n++
if n >= 2 {
file = file[i+1:]
break
}
}
}
*/
return path.Base(file), line
}
return "???", 0
}