123456789101112131415161718192021222324252627282930313233343536373839 |
- package utils
- import (
- "fmt"
- "os"
- "regexp"
- "runtime"
- "strconv"
- "strings"
- "time"
- )
- var (
- pid = os.Getpid()
- gormSourceDir string
- )
- func init() {
- _, file, _, _ := runtime.Caller(0)
- gormSourceDir = regexp.MustCompile(`utils.utils\.go`).ReplaceAllString(file, "")
- }
- // NewTraceID 创建追踪ID
- func NewTraceID() string {
- return fmt.Sprintf("trace-id-%d-%s",
- pid,
- time.Now().Format("2006.01.02.15.04.05.999999"))
- }
- func FileWithLineNum() string {
- for i := 2; i < 15; i++ {
- _, file, line, ok := runtime.Caller(i)
- if ok && (!strings.HasPrefix(file, gormSourceDir) || strings.HasSuffix(file, "_test.go")) {
- return file + ":" + strconv.FormatInt(int64(line), 10)
- }
- }
- return ""
- }
|