Gin 优雅打印请求与回包内容
package main
import (
"fmt"
"log"
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default() // 创建一个带有默认中间件的路由器
// 设置一个简单的 GET 路由
router.GET("/hello", func(c *gin.Context) {
c.String(http.StatusOK, "Hello, World!")
})
// 启动服务器
if err := router.Run(":8080"); err != nil {
log.Fatal(err)
}
}
// 打印请求和回包内容的函数
func logMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
// 请求日志:请求方法、URL、IP
start := time.Now()
c.Next() // 处理请求
end := time.Now()
log.Printf("[%s] %s %s - %v\n",
c.Request.Method,
c.Request.RequestURI,
c.ClientIP(),
end.Sub(start),
)
// 响应日志:状态码、响应时间、Body
log.Printf("Response Body: %s", c.Writer.Body)
}
}
这个示例代码展示了如何使用Gin框架创建一个简单的Web服务器,并使用自定义的日志中间件来优雅地打印请求和响应内容。这对于开发者了解HTTP请求和响应的详细信息非常有帮助,也可以作为开发中的调试工具。
评论已关闭