记录响应主体以进行记录

问题描述 投票:3回答:1

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

go handler
1个回答
3
投票

您已经有一个自定义的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
}
© www.soinside.com 2019 - 2024. All rights reserved.