Go 记录响应主体以用于日志记录

Go 记录响应主体以用于日志记录,go,handler,Go,Handler,请看。我试图为我们的日志平台提供访问日志,但我现在有点卡住了。我已经获得了响应的状态代码,但现在我对响应内容长度也感兴趣。但不幸的是,我真的不知道如何使用包装处理机制获取/提取内容长度。非常感谢您的帮助。您已经有了一个自定义的ResponseWriter,因此只需添加一个类似这样的函数来覆盖写入并存储基础写入程序写入的金额: func (lrw *loggingResponseWriter) Write(b []byte) (int, error) { n,err := lrw.Res

请看。我试图为我们的日志平台提供访问日志,但我现在有点卡住了。我已经获得了响应的状态代码,但现在我对响应内容长度也感兴趣。但不幸的是,我真的不知道如何使用包装处理机制获取/提取内容长度。非常感谢您的帮助。

您已经有了一个自定义的ResponseWriter,因此只需添加一个类似这样的函数来覆盖写入并存储基础写入程序写入的金额:

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