Skip to content

Commit

Permalink
fix(b): filter assets&swagger log
Browse files Browse the repository at this point in the history
  • Loading branch information
zaigie committed Feb 1, 2024
1 parent 259f32f commit 3720640
Showing 1 changed file with 16 additions and 28 deletions.
44 changes: 16 additions & 28 deletions api/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package api
import (
"fmt"
"strings"
"time"

"github.com/gin-gonic/gin"
swaggerFiles "github.com/swaggo/files"
Expand All @@ -21,40 +20,29 @@ type ErrorResponse struct {

type EmptyResponse struct{}

type filter func(param gin.LogFormatterParams) bool

func Logger(f filter) gin.HandlerFunc {
func Logger() gin.HandlerFunc {
return gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {
if f(param) {
return ""
}
var statusColor, methodColor, resetColor string
if param.IsOutputColor() {
statusColor = param.StatusCodeColor()
methodColor = param.MethodColor()
resetColor = param.ResetColor()
}

if param.Latency > time.Minute {
param.Latency = param.Latency.Truncate(time.Second)
if !strings.HasPrefix(param.Path, "/swagger/") && !strings.HasPrefix(param.Path, "/assets/") {
statusColor := param.StatusCodeColor()
methodColor := param.MethodColor()
resetColor := param.ResetColor()
return fmt.Sprintf("[GIN] %v |%s %3d %s| %13v | %15s |%s %-7s %s %#v\n%s",
param.TimeStamp.Format("2006/01/02 - 15:04:05"),
statusColor, param.StatusCode, resetColor,
param.Latency,
param.ClientIP,
methodColor, param.Method, resetColor,
param.Path,
param.ErrorMessage,
)
}
return fmt.Sprintf("[GIN] %v |%s %3d %s| %13v | %15s |%s %-7s %s %#v\n%s",
param.TimeStamp.Format("2006/01/02 - 15:04:05"),
statusColor, param.StatusCode, resetColor,
param.Latency,
param.ClientIP,
methodColor, param.Method, resetColor,
param.Path,
param.ErrorMessage,
)
return ""
})
}

func RegisterRouter() *gin.Engine {
r := gin.New()
r.Use(Logger(func(param gin.LogFormatterParams) bool {
return strings.HasPrefix(param.Path, "/swagger/") || strings.HasPrefix(param.Path, "/assets/")
}), gin.Recovery(), gin.Logger())
r.Use(Logger(), gin.Recovery())

r.POST("/api/login", loginHandler)
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
Expand Down

0 comments on commit 3720640

Please sign in to comment.