package main
import (
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
)
// 自定义日志结构体
type customLogger struct {
*logrus.Logger
}
// 实现 gin.HandlerFunc 接口
func (c customLogger) Write(p []byte) (n int, err error) {
c.Logger.Info(string(p))
return len(p), nil
}
func main() {
// 创建自定义日志实例
logger := &customLogger{logrus.New()}
// 创建一个使用自定义日志的 gin 引擎
engine := gin.New()
engine.Use(gin.Recovery())
engine.Use(logger)
// 设置一个路由
engine.GET("/", func(c *gin.Context) {
c.String(200, "Hello, world!")
})
// 启动服务器
engine.Run(":8080")
}
这段代码定义了一个自定义的日志结构体customLogger
,它实现了gin.HandlerFunc
接口,并重写了Write
方法来记录请求信息。然后,在Gin引擎中使用这个自定义的日志处理器。这样,所有通过Gin引擎的请求和响应都会被记录下来。