aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/middleware/log.go
diff options
context:
space:
mode:
authorJP Appel <jeanpierre.appel01@gmail.com>2024-10-09 17:36:10 -0400
committerJP Appel <jeanpierre.appel01@gmail.com>2024-10-09 17:36:10 -0400
commit54cd78b2c2bafe2fc9b191f7375d652d17e15e95 (patch)
treee02bb16150916e7a547046e8adedb025b0592630 /middleware/log.go
parent17e269202ba01e8467a87163395a1e6ac8261e02 (diff)
Add logger middleware
Diffstat (limited to 'middleware/log.go')
-rw-r--r--middleware/log.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/middleware/log.go b/middleware/log.go
new file mode 100644
index 0000000..57eb218
--- /dev/null
+++ b/middleware/log.go
@@ -0,0 +1,20 @@
+package middleware
+
+import (
+ "log/slog"
+ "net/http"
+)
+
+func Log(next http.Handler, logger *slog.Logger) http.Handler {
+ return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+
+ user, _, ok := r.BasicAuth()
+ if ok {
+ logger = logger.With(slog.String("user", user))
+ }
+
+ logger.InfoContext(r.Context(), "Recieved Request", slog.Group("request", "method", r.Method, "url", r.URL, "user agent", r.UserAgent))
+
+ next.ServeHTTP(w, r)
+ })
+}