From b0480356de57b5f696acf6a627b2b23842ba4d76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ferdinand=20M=C3=BCtsch?= Date: Sun, 7 Feb 2021 12:50:02 +0100 Subject: [PATCH] chore: exclude static assets from request logging --- main.go | 5 ++++- middlewares/logging.go | 20 +++++++++++++++----- version.txt | 2 +- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 7bd017d..5e2fc08 100644 --- a/main.go +++ b/main.go @@ -170,7 +170,10 @@ func main() { // Globally used middlewares recoveryMiddleware := handlers.RecoveryHandler() - loggingMiddleware := middlewares.NewLoggingMiddleware(log.New(os.Stdout, "", log.LstdFlags)) + loggingMiddleware := middlewares.NewLoggingMiddleware( + log.New(os.Stdout, "", log.LstdFlags), + []string{"/assets"}, + ) // Router configs router.Use(loggingMiddleware, recoveryMiddleware) diff --git a/middlewares/logging.go b/middlewares/logging.go index 2237067..08440c2 100644 --- a/middlewares/logging.go +++ b/middlewares/logging.go @@ -6,19 +6,22 @@ import ( "io" "log" "net/http" + "strings" "time" ) type LoggingMiddleware struct { - handler http.Handler - output *log.Logger + handler http.Handler + output *log.Logger + excludePrefixes []string } -func NewLoggingMiddleware(output *log.Logger) func(http.Handler) http.Handler { +func NewLoggingMiddleware(output *log.Logger, excludePrefixes []string) func(http.Handler) http.Handler { return func(h http.Handler) http.Handler { return &LoggingMiddleware{ - handler: h, - output: output, + handler: h, + output: output, + excludePrefixes: excludePrefixes, } } } @@ -31,6 +34,13 @@ func (lg *LoggingMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Request) { end := time.Now() duration := end.Sub(start) + path := strings.ToLower(r.URL.Path) + for _, prefix := range lg.excludePrefixes { + if strings.HasPrefix(path, prefix) { + return + } + } + lg.output.Printf( "%v status=%d, method=%s, uri=%s, duration=%v, bytes=%d, addr=%s\n", time.Now().Format(time.RFC3339Nano), diff --git a/version.txt b/version.txt index 1b50fc3..db8b4ac 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.23.1 \ No newline at end of file +1.23.2 \ No newline at end of file