util.go 1.1 KB

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