From 171f74b1744d8405491235374a04de6aa7de46c5 Mon Sep 17 00:00:00 2001 From: Knut Ahlers Date: Sat, 6 Feb 2021 22:39:56 +0100 Subject: [PATCH] Allow to pass in a logger for HTTP logs Signed-off-by: Knut Ahlers --- http/logHandler.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/http/logHandler.go b/http/logHandler.go index 83fa472..3504f37 100644 --- a/http/logHandler.go +++ b/http/logHandler.go @@ -3,18 +3,26 @@ package http import ( "log" "net/http" + "os" "strings" "time" "github.com/Luzifer/go_helpers/v2/accessLogger" + "github.com/sirupsen/logrus" ) type HTTPLogHandler struct { Handler http.Handler TrustedIPHeaders []string + + logger logrus.StdLogger } func NewHTTPLogHandler(h http.Handler) http.Handler { + return NewHTTPLogHandlerWithLogger(h, log.New(os.Stderr, "", log.LstdFlags)) +} + +func NewHTTPLogHandlerWithLogger(h http.Handler, l logrus.StdLogger) http.Handler { return HTTPLogHandler{ Handler: h, TrustedIPHeaders: []string{"X-Forwarded-For", "RemoteAddr", "X-Real-IP"}, @@ -32,7 +40,7 @@ func (l HTTPLogHandler) ServeHTTP(res http.ResponseWriter, r *http.Request) { path = path + "?" + q } - log.Printf("%s - \"%s %s\" %d %d \"%s\" \"%s\" %s", + l.logger.Printf("%s - \"%s %s\" %d %d \"%s\" \"%s\" %s", l.findIP(r), r.Method, path,