go 框架iris 响应记录器

iris

go 语言 iris 是一个强大的框架,写一个http 服务是比较方便的,记录他收到的所有参数,方法等等也是有必要的, 使用logger来记录,以便于调试和发现错误,因为在测试没有充分的情况下,至少打开记录器,我们是可以发现一些问题的。

定义拦截器

定义一个before 中间件,在main中使用Use

func before(ctx iris.Context) {
	ctx.Record()
	requestPath := ctx.Path()
	println("Before the mainHandler: " + requestPath)
	body := ctx.Recorder().Body()
	fmt.Printf("sent body %s %s\n", string(body), ctx.RouteName())
	//println(ctx.Request().Body)
	println(ctx.Request().RequestURI)
	ctx.Values().Set("info", "here")
    //使用logger来记录,以便于调试和发现错误
	ctx.Next() //执行下一个处理程序,在本例中为主要处理程序。
}

1 在main函数中使用app.Use(before) 来启动中间件
2 使用ctx.Record 来记录所有数据
3 中间件中可以获取其他如执行参数 ctx.Request().Body
事实上这里不一定要用Record,但是可以使用Record的原因是我们可以在这里修改!
执行结果

show me the code


import (
	"fmt"
	"net/http"
	"github.com/kataras/iris/v12"
	//"github.com/lucas-clemente/quic-go/http3"
)

func before(ctx iris.Context) {
	ctx.Record()
	requestPath := ctx.Path()
	println("Before the mainHandler: " + requestPath)
	body := ctx.Recorder().Body()
	fmt.Printf("sent body %s %s\n", string(body), ctx.RouteName())
	//println(ctx.Request().Body)
	println(ctx.Request().RequestURI)
	ctx.Values().Set("info", "here")
	ctx.Next() //执行下一个处理程序,在本例中为主要处理程序。
}

func main() {
	app := iris.New()
	app.Use(before)
	app.Get("/", func(ctx iris.Context) {
		ctx.Writef("test")
	})
	app.Get("/aa", func(ctx iris.Context) {
		ctx.Writef("aa")
	})
	app.Get("/test", func(ctx iris.Context) {
		ctx.Writef("wao %s", ctx.Path())

	})
	srv := &http.Server{Addr: ":8080"}

	app.Run(iris.Server(srv)) // same as app.Listen(":8080")

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qianbo_insist

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值