package middleware import ( "fmt" "github.com/QuantumNous/new-api/common" "github.com/gin-gonic/gin" ) const RouteTagKey = "route_tag" func RouteTag(tag string) gin.HandlerFunc { return func(c *gin.Context) { c.Set(RouteTagKey, tag) c.Next() } } func SetUpLogger(server *gin.Engine) { server.Use(gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string { var requestID string if param.Keys != nil { requestID, _ = param.Keys[common.RequestIdKey].(string) } tag, _ := param.Keys[RouteTagKey].(string) if tag == "" { tag = "web" } return fmt.Sprintf("[GIN] %s | %s | %s | %3d | %13v | %15s | %7s %s\n", param.TimeStamp.Format("2006/01/02 - 15:04:05"), tag, requestID, param.StatusCode, param.Latency, param.ClientIP, param.Method, param.Path, ) })) }