内置中间件
package main
import "github.com/gin-gonic/gin"
func main() {
// 新建一个没有任何默认中间件的路由
r := gin.New()
// 全局中间件
// Logger 中间件将日志写入 gin.DefaultWriter,即使你将 GIN_MODE 设置为 release。
// By default gin.DefaultWriter = os.Stdout
r.Use(gin.Logger())
// Recovery 中间件会 recover 任何 panic。如果有 panic 的话,会写入 500。
r.Use(gin.Recovery())
// 你可以为每个路由添加任意数量的中间件。
r.GET("/ping", func(c *gin.Context) {
c.String(200, "hello")
})
// 监听并在 0.0.0.0:8080 上启动服务
r.Run(":8080")
}
gin.Default()默认添加了Logger(), Recovery()中间件
// Default returns an Engine instance with the Logger and Recovery middleware already attached.
func Default() *Engine {
debugPrintWARNINGDefault()
engine := New()
engine.Use(Logger(), Recovery())
return engine
}
自定义中间件
func MyLogger() gin.HandlerFunc {
return func(c *gin.Context) {
t := time.Now()
// 请求前
c.Next()
// 请求后
latency := time.Since(t)
log.Printf("接口用时:%dNS", latency)
}
}
全局开启:
//添加自定义中间件
r.Use(MyLogger())