一、中间件使用
中间件是 Gin 中强大的功能,可用于日志记录、权限验证等场景。
1 定义中间件
func m01(c *gin.Context) {
fmt.Println("m01...in")
c.Next()
fmt.Println("m01...out")
}
中间件函数接收一个 gin.Context 参数,并通过调用 c.Next() 将请求传递给后续处理函数。
2 注册中间件
func main() {
router := gin.Default()
router.Use(m01)
router.GET("/10", func(c *gin.Context) {
fmt.Println("10...in")
c.JSON(200, gin.H{"msg": "index10"})
})
router.Run("localhost:8080")
}
使用 router.Use() 方法注册全局中间件,所有请求都会经过该中间件。
八、日志功能的定制
Gin 提供了灵活的日志功能,方便开发者记录应用运行状态。
1 自定义日志格式
router.Use(gin.LoggerWithFormatter(func(params gin.LogFormatterParams) string {
return fmt.Sprintf(
"[ei] %s | %d | %s | %s \n",
params.TimeStamp.Format("2006-01-02 15:04:05"),
params.StatusCode,
params.Method,
params.Path,
)
}))通过 gin.LoggerWithFormatter() 方法,可以自定义日志的输出格式。
2 设置日志输出位置
file, _ := os.Create("gin.log")
gin.DefaultWriter = io.MultiWriter(file, os.Stdout)
将日志输出到文件和控制台,方便后续分析与排查问题。