summaryrefslogtreecommitdiff
path: root/internal/server/middleware.go
diff options
context:
space:
mode:
authormihna123 <mihailonvojinovic@gmail.com>2026-08-21 20:50:37 +0200
committermihna123 <mihailonvojinovic@gmail.com>2026-08-21 20:50:37 +0200
commit848ce19b5097e4d26b0106f3158ec2140e52b5a4 (patch)
treeb884215688cd584d5349f4c661c270c76db03e73 /internal/server/middleware.go
parent9db000f9ccfd08b12fd2ed859b71c33e6ca165c5 (diff)
downloadopenstore-848ce19b5097e4d26b0106f3158ec2140e52b5a4.tar.gz
openstore-848ce19b5097e4d26b0106f3158ec2140e52b5a4.zip
server: move logging from the handler into middleware
Diffstat (limited to 'internal/server/middleware.go')
-rw-r--r--internal/server/middleware.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/internal/server/middleware.go b/internal/server/middleware.go
new file mode 100644
index 0000000..fe51224
--- /dev/null
+++ b/internal/server/middleware.go
@@ -0,0 +1,24 @@
+package server
+
+import (
+ "log"
+ "net/http"
+)
+
+type statusRecorder struct {
+ http.ResponseWriter
+ status int
+}
+
+func (r *statusRecorder) WriteHeader(code int) {
+ r.ResponseWriter.WriteHeader(code)
+ r.status = code
+}
+
+func logRequests(next http.Handler) http.Handler {
+ return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ recorder := &statusRecorder{ResponseWriter: w, status: http.StatusOK}
+ next.ServeHTTP(recorder, r)
+ log.Printf("[%s] %s - %s: %d", r.Method, r.RequestURI, r.RemoteAddr, recorder.status)
+ })
+}