记录响应主体以用于记录目的
Record response bodies for logging purposes
请参阅this playground。我正在尝试向我们的日志记录平台提供访问日志记录,但我现在有点卡住了。我已经设法获得响应的状态代码,但现在我也对响应内容长度感兴趣。但不幸的是,我真的不知道如何使用 wrapped-handler 机制 get/extract 内容长度。非常感谢任何帮助。
您已经有一个自定义 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
}
请参阅this playground。我正在尝试向我们的日志记录平台提供访问日志记录,但我现在有点卡住了。我已经设法获得响应的状态代码,但现在我也对响应内容长度感兴趣。但不幸的是,我真的不知道如何使用 wrapped-handler 机制 get/extract 内容长度。非常感谢任何帮助。
您已经有一个自定义 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
}