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
|
||
|
}
|