golang gin 日志中间件
以下是一个简单的Gin日志中间件的示例代码:
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"time"
)
// 自定义日志中间件
func Logger() gin.HandlerFunc {
return func(c *gin.Context) {
// 开始时间
startTime := time.Now()
// 处理请求
c.Next()
// 结束时间
endTime := time.Now()
// 日志格式
logLine := fmt.Sprintf("[%s] \"%s %s %s\" %d %s",
endTime.Format("2006/01/02 - 15:04:05"),
c.Request.Method,
c.Request.RequestURI,
c.Request.Proto,
c.Writer.Status(),
endTime.Sub(startTime),
)
// 打印日志
fmt.Println(logLine)
}
}
func main() {
r := gin.Default()
// 使用自定义日志中间件
r.Use(Logger())
// 示例路由
r.GET("/", func(c *gin.Context) {
c.String(200, "Hello, World!")
})
// 启动服务器
r.Run(":8080")
}
这段代码定义了一个Logger
函数,它返回一个中间件,记录每个请求的开始时间、结束时间和处理时长。然后,在Gin的路由处理中使用这个中间件。每当有请求进入,就会打印出相应的日志信息。
评论已关闭