From 49d9806bd67e456379cb47c2d9794d0548b13d05 Mon Sep 17 00:00:00 2001 From: Haelnorr Date: Sun, 9 Feb 2025 17:38:35 +1100 Subject: [PATCH] Converted logging middleware to use new logger --- logging/logger.go | 6 +++++- main.go | 2 +- middleware/logging.go | 11 ++++++++--- server/server.go | 10 ++++++++-- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/logging/logger.go b/logging/logger.go index 405b2f6..b2810f0 100644 --- a/logging/logger.go +++ b/logging/logger.go @@ -74,7 +74,11 @@ func GetLogger( } else { output = consoleWriter } - logger := zerolog.New(output).With().Timestamp().Caller().Logger().Level(logLevel) + logger := zerolog.New(output). + With(). + Timestamp(). + Logger(). + Level(logLevel) return &logger, nil } diff --git a/main.go b/main.go index 11a93e8..8639cba 100644 --- a/main.go +++ b/main.go @@ -61,7 +61,7 @@ func run(ctx context.Context, w io.Writer, args map[string]string) error { } defer conn.Close() - srv := server.NewServer(config, conn) + srv := server.NewServer(config, logger, conn) httpServer := &http.Server{ Addr: net.JoinHostPort(config.Host, config.Port), Handler: srv, diff --git a/middleware/logging.go b/middleware/logging.go index df95866..ef37c5c 100644 --- a/middleware/logging.go +++ b/middleware/logging.go @@ -1,9 +1,10 @@ package middleware import ( - "log" "net/http" "time" + + "github.com/rs/zerolog" ) // Wraps the http.ResponseWriter, adding a statusCode field @@ -19,7 +20,7 @@ func (w *wrappedWriter) WriteHeader(statusCode int) { } // Middleware to add logs to console with details of the request -func Logging(next http.Handler) http.Handler { +func Logging(logger *zerolog.Logger, next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { start := time.Now() wrapped := &wrappedWriter{ @@ -27,6 +28,10 @@ func Logging(next http.Handler) http.Handler { statusCode: http.StatusOK, } next.ServeHTTP(wrapped, r) - log.Println(wrapped.statusCode, r.Method, r.URL.Path, time.Since(start)) + logger.Info(). + Int("status", wrapped.statusCode). + Str("method", r.Method). + Str("resource", r.URL.Path). + Dur("time_elapsed", time.Since(start)).Msg("Served") }) } diff --git a/server/server.go b/server/server.go index 8a531cf..3125b1d 100644 --- a/server/server.go +++ b/server/server.go @@ -5,10 +5,16 @@ import ( "net/http" "projectreshoot/middleware" + + "github.com/rs/zerolog" ) // Returns a new http.Handler with all the routes and middleware added -func NewServer(config *Config, conn *sql.DB) http.Handler { +func NewServer( + config *Config, + logger *zerolog.Logger, + conn *sql.DB, +) http.Handler { mux := http.NewServeMux() addRoutes( mux, @@ -16,6 +22,6 @@ func NewServer(config *Config, conn *sql.DB) http.Handler { conn, ) var handler http.Handler = mux - handler = middleware.Logging(handler) + handler = middleware.Logging(logger, handler) return handler }