自定义中间件

  1. func Logger() gin.HandlerFunc {
  2. return func(c *gin.Context) {
  3. t := time.Now()
  4. // 设置 example 变量
  5. c.Set("example", "12345")
  6. // 请求前
  7. c.Next()
  8. // 请求后
  9. latency := time.Since(t)
  10. log.Print(latency)
  11. // 获取发送的 status
  12. status := c.Writer.Status()
  13. log.Println(status)
  14. }
  15. }
  16. func main() {
  17. r := gin.New()
  18. r.Use(Logger())
  19. r.GET("/test", func(c *gin.Context) {
  20. example := c.MustGet("example").(string)
  21. // 打印:"12345"
  22. log.Println(example)
  23. })
  24. // 监听并在 0.0.0.0:8080 上启动服务
  25. r.Run(":8080")
  26. }