diff --git a/vendor/manifest b/vendor/manifest index 2cc75e575..1a43889e6 100644 --- a/vendor/manifest +++ b/vendor/manifest @@ -98,7 +98,7 @@ { "importpath": "github.com/matrix-org/util", "repository": "https://github.com/matrix-org/util", - "revision": "bc9d5e2d2f68a2ca279fce0fa2f28a91ecf301ed", + "revision": "8b11d9882e131d58ff40525c8f7b9a7f4b811a43", "branch": "master" }, { diff --git a/vendor/src/github.com/matrix-org/util/json.go b/vendor/src/github.com/matrix-org/util/json.go index a30d73f8e..a1b67656f 100644 --- a/vendor/src/github.com/matrix-org/util/json.go +++ b/vendor/src/github.com/matrix-org/util/json.go @@ -93,23 +93,30 @@ func Protect(handler http.HandlerFunc) http.HandlerFunc { } } +// SetupRequestLogging sets up standard logging for http.Requests. +// http.Requests will have a logger (with a request ID/method/path logged) attached to the Context. +// This can be accessed via GetLogger(Context). +func SetupRequestLogging(req *http.Request) { + reqID := RandomString(12) + // Set a Logger and request ID on the context + ctx := context.WithValue(req.Context(), ctxValueLogger, log.WithFields(log.Fields{ + "req.method": req.Method, + "req.path": req.URL.Path, + "req.id": reqID, + })) + ctx = context.WithValue(ctx, ctxValueRequestID, reqID) + req = req.WithContext(ctx) + + logger := GetLogger(req.Context()) + logger.Print("Incoming request") +} + // MakeJSONAPI creates an HTTP handler which always responds to incoming requests with JSON responses. // Incoming http.Requests will have a logger (with a request ID/method/path logged) attached to the Context. // This can be accessed via GetLogger(Context). func MakeJSONAPI(handler JSONRequestHandler) http.HandlerFunc { return Protect(func(w http.ResponseWriter, req *http.Request) { - reqID := RandomString(12) - // Set a Logger and request ID on the context - ctx := context.WithValue(req.Context(), ctxValueLogger, log.WithFields(log.Fields{ - "req.method": req.Method, - "req.path": req.URL.Path, - "req.id": reqID, - })) - ctx = context.WithValue(ctx, ctxValueRequestID, reqID) - req = req.WithContext(ctx) - - logger := GetLogger(req.Context()) - logger.Print("Incoming request") + SetupRequestLogging(req) if req.Method == "OPTIONS" { SetCORSHeaders(w)