Implement http.Hijack interface in HTTPLoggingMiddleware

This commit is contained in:
Jan-Eric Hellenberg
2021-05-17 15:38:34 +02:00
parent 83ea552cf7
commit 5d5f175f52

View File

@ -1,7 +1,9 @@
package logging package logging
import ( import (
"bufio"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
"net"
"net/http" "net/http"
"os" "os"
"time" "time"
@ -46,6 +48,10 @@ func (writer *loggingResponseWriter) WriteHeader(code int) {
writer.ResponseWriter.WriteHeader(code) writer.ResponseWriter.WriteHeader(code)
} }
func (writer *loggingResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) {
return writer.ResponseWriter.(http.Hijacker).Hijack()
}
// HTTPLoggingMiddleware returns an http.Handler that logs different information about every request // HTTPLoggingMiddleware returns an http.Handler that logs different information about every request
func HTTPLoggingMiddleware(next http.Handler) http.Handler { func HTTPLoggingMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {