记录响应主体以进行日志记录

时间:2018-10-16 08:47:55

标签: go handler

请参阅this playground。我正在尝试提供对我们的日志记录平台的访问日志记录,但是现在有点卡住了。我已经设法获得了响应的状态码,但是现在我也对响应的内容长度感兴趣。但是不幸的是,我真的不知道如何使用包装处理程序机制来获取/提取内容长度。我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您已经有一个自定义的ResponseWriter,因此只需添加一个类似于以下内容的函数即可覆盖Write并存储基础作家所写的金额:

https://play.golang.org/p/dwWEs5KI_wM

func (lrw *loggingResponseWriter) Write(b []byte) (int, error) {
    n,err := lrw.ResponseWriter.Write(b)
    lrw.written  = lrw.written + n
    return n,err
}