gin_logger.go 620 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package fslog
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "runtime/debug"
  5. "slices"
  6. "strconv"
  7. "time"
  8. )
  9. func GinLogger(skipPaths []string) gin.HandlerFunc {
  10. return func(c *gin.Context) {
  11. start := time.Now()
  12. c.Next()
  13. path := c.Request.URL.Path
  14. if slices.Contains(skipPaths, path) {
  15. return
  16. }
  17. end := time.Now()
  18. Info(" %d | %s | %s \"%s\"",
  19. c.Writer.Status(),
  20. strconv.Itoa(int(end.Sub(start).Milliseconds()))+"ms",
  21. c.Request.Method,
  22. path,
  23. )
  24. }
  25. }
  26. func GinRecovery() gin.HandlerFunc {
  27. return func(c *gin.Context) {
  28. err := recover()
  29. if err != nil {
  30. Error("%s", debug.Stack())
  31. }
  32. }
  33. }