简单记录下gin中使用中间件记录操作日志
在Gin框架中,我们可以使用中间件来记录操作日志。以下是一个简单的示例,展示了如何创建一个记录操作日志的中间件,并将其添加到Gin路由器中:
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"log"
"time"
)
// 自定义日志中间件
func Logger() gin.HandlerFunc {
return func(c *gin.Context) {
// 开始时间
startTime := time.Now()
// 处理请求
c.Next()
// 结束时间
endTime := time.Now()
// 日志格式
log.Printf("[%s] %s %s %s %v\n",
endTime.Format("2006/01/02 - 15:04:05"),
c.Request.Method,
c.Request.RequestURI,
c.ClientIP(),
endTime.Sub(startTime),
)
}
}
func main() {
router := gin.Default()
// 添加日志中间件
router.Use(Logger())
router.GET("/", func(c *gin.Context) {
c.String(200, "Hello, World!")
})
// 运行服务器
port := "8080"
if err := router.Run(":" + port); err != nil {
fmt.Printf("服务器启动失败:%v\n", err)
}
}
在这个示例中,我们定义了一个名为Logger
的中间件函数,它记录每个请求的开始和结束时间,并计算处理请求所需的时间。然后,我们通过调用router.Use(Logger())
将其添加到Gin路由器中。每当有请求进入时,都会先通过这个中间件,然后记录相关的日志信息。
评论已关闭