gpt4 book ai didi

go - 使用Martini中间件,如果响应代码大于399,则记录错误

转载 作者:行者123 更新时间:2023-12-01 22:25:31 25 4
gpt4 key购买 nike

如果我的服务器处理了一个请求并将响应代码写为大于399,则我想记录一个错误跟踪:

    bm.Use(func(res http.ResponseWriter, req *http.Request, c martini.Context, log *logging.Logger, statter statsd.Statter) {

start := time.Now()

rw := res.(martini.ResponseWriter)

c.Next() // do all the middleware handler stuff

if res.(martini.ResponseWriter).Status() > 399 {
log.Warning("%v", "print response here") // how to read response here
}

})

给定状态码,有没有办法读取响应?如果我们将错误发送回客户端,我该如何截取错误消息并进行记录?

最佳答案

我在马提尼的自述文件中找到了 c.MapTo 。如果我正确理解,这应该可以工作:

bm.Use(func(res http.ResponseWriter, req *http.Request, c martini.Context, log *logging.Logger, statter statsd.Statter) {

var rsp bytes.Buffer

rw := io.MultiWriter(res, &rsp)

c.MapTo(rw, (*http.ResponseWriter)(nil))

c.Next() // do all the middleware handler stuff

if res.(martini.ResponseWriter).Status() > 399 {
log.Warning("%v", rsp.String())
}

})

请注意,我不熟悉马提尼酒,因此不确定是否可行。

关于go - 使用Martini中间件,如果响应代码大于399,则记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60180021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com