util.go 925 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package utils
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/gogf/gf/v2/container/gvar"
  6. "github.com/gogf/gf/v2/frame/g"
  7. "os"
  8. "regexp"
  9. "runtime"
  10. "strconv"
  11. "strings"
  12. "time"
  13. )
  14. var (
  15. pid = os.Getpid()
  16. gormSourceDir string
  17. )
  18. func init() {
  19. _, file, _, _ := runtime.Caller(0)
  20. gormSourceDir = regexp.MustCompile(`utils.utils\.go`).ReplaceAllString(file, "")
  21. }
  22. // NewTraceID 创建追踪ID
  23. func NewTraceID() string {
  24. return fmt.Sprintf("trace-id-%d-%s",
  25. pid,
  26. time.Now().Format("2006.01.02.15.04.05.999999"))
  27. }
  28. func FileWithLineNum() string {
  29. for i := 2; i < 15; i++ {
  30. _, file, line, ok := runtime.Caller(i)
  31. if ok && (!strings.HasPrefix(file, gormSourceDir) || strings.HasSuffix(file, "_test.go")) {
  32. return file + ":" + strconv.FormatInt(int64(line), 10)
  33. }
  34. }
  35. return ""
  36. }
  37. func GetConfig(key string) *gvar.Var {
  38. ret, err := g.Cfg().Get(context.Background(), key)
  39. if err != nil {
  40. }
  41. return ret
  42. }