reqid.go 614 B

12345678910111213141516171819202122232425262728293031323334
  1. package middleware
  2. import (
  3. "strconv"
  4. "time"
  5. "github.com/gin-gonic/gin"
  6. "github.com/labring/aiproxy/core/common"
  7. )
  8. func GenRequestID(t time.Time) string {
  9. return strconv.FormatInt(t.UnixMicro(), 10)
  10. }
  11. const (
  12. RequestIDHeader = "X-Request-Id"
  13. )
  14. func SetRequestID(c *gin.Context, id string) {
  15. c.Set(RequestID, id)
  16. c.Header(RequestIDHeader, id)
  17. log := common.GetLogger(c)
  18. SetLogRequestIDField(log.Data, id)
  19. }
  20. func GetRequestID(c *gin.Context) string {
  21. return c.GetString(RequestID)
  22. }
  23. func RequestIDMiddleware(c *gin.Context) {
  24. now := GetRequestAt(c)
  25. id := GenRequestID(now)
  26. SetRequestID(c, id)
  27. }