all repos — homestead @ d9a119ca0abe7ffedd125c81c78f725aab886d29

Code for my website

domain/web/server/logging.go (view raw)

package server

import (
	"net/http"

	"alin.ovh/x/log"

	sharedhttp "alin.ovh/homestead/shared/http"
)

func wrapHandlerWithLogging(wrappedHandler http.Handler, log *log.Logger) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		lw := sharedhttp.NewStatusCapturingResponseWriter(w)
		wrappedHandler.ServeHTTP(lw, r)
		log.Info(
			"http request",
			"method", r.Method,
			"status", lw.Status,
			"host", r.Host,
			"path", r.URL.Path,
			"location", lw.Header().Get("Location"),
		)
	})
}