网站Logo 90的blog

GIN3

root
7
2024-12-03

一、中间件使用

中间件是 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)

将日志输出到文件和控制台,方便后续分析与排查问题。

动物装饰