请参阅this playground。我正在尝试为我们的日志记录平台提供访问日志记录,但我现在有点卡住了。我已设法获取响应的状态代码,但现在我也对响应内容长度感兴趣。但遗憾的是,我真的不知道如何通过使用包装处理程序机制来获取/提取内容长度。任何帮助都非常感谢。
您已经有一个自定义的ResponseWriter,所以只需添加一个类似这样的函数来覆盖Write并存储底层writer的写入量:
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
}