26 lines
486 B
Go
26 lines
486 B
Go
package logger
|
|
|
|
import "net/http"
|
|
|
|
//ResponseWriter ResponseWriter
|
|
type ResponseWriter struct {
|
|
http.ResponseWriter
|
|
Status int
|
|
Length int
|
|
}
|
|
|
|
//WriteHeader override `http.ResponseWriter` memorize status code
|
|
func (w *ResponseWriter) WriteHeader(status int) {
|
|
w.Status = status
|
|
w.ResponseWriter.WriteHeader(status)
|
|
}
|
|
|
|
func (w *ResponseWriter) Write(b []byte) (int, error) {
|
|
if w.Status == 0 {
|
|
w.Status = 200
|
|
}
|
|
n, err := w.ResponseWriter.Write(b)
|
|
w.Length += n
|
|
return n, err
|
|
}
|