Skip to content

Commit 3422262

Browse files
committed
add method to set log level for logging with request
1 parent 5fd699a commit 3422262

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

middleware/logging.go

+17-15
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,15 @@ func (l Log) logWithRequest(r *http.Request) logging.Interface {
3838
return user.LogWith(r.Context(), localLog)
3939
}
4040

41+
func (l Log) logWithRequestAtLevelf(r *http.Request, level string, format string, args ...interface{}) {
42+
switch level {
43+
case "debug":
44+
l.logWithRequest(r).Debugf(format, args...)
45+
case "info":
46+
l.logWithRequest(r).Infof(format, args...)
47+
}
48+
}
49+
4150
// Wrap implements Middleware
4251
func (l Log) Wrap(next http.Handler) http.Handler {
4352
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
@@ -53,33 +62,26 @@ func (l Log) Wrap(next http.Handler) http.Handler {
5362
wrapped := newBadResponseLoggingWriter(w, &buf)
5463
next.ServeHTTP(wrapped, r)
5564

65+
level := "debug"
66+
if l.LogRequestsAtInfoLevel {
67+
level = "info"
68+
}
69+
5670
statusCode, writeErr := wrapped.statusCode, wrapped.writeError
5771

5872
if writeErr != nil {
5973
if errors.Is(writeErr, context.Canceled) {
60-
if l.LogRequestsAtInfoLevel {
61-
l.logWithRequest(r).Infof("%s %s %s, request cancelled: %s ws: %v; %s", r.Method, uri, time.Since(begin), writeErr, IsWSHandshakeRequest(r), headers)
62-
} else {
63-
l.logWithRequest(r).Debugf("%s %s %s, request cancelled: %s ws: %v; %s", r.Method, uri, time.Since(begin), writeErr, IsWSHandshakeRequest(r), headers)
64-
}
74+
l.logWithRequestAtLevelf(r, level, "%s %s %s, request cancelled: %s ws: %v; %s", r.Method, uri, time.Since(begin), writeErr, IsWSHandshakeRequest(r), headers)
6575
} else {
6676
l.logWithRequest(r).Warnf("%s %s %s, error: %s ws: %v; %s", r.Method, uri, time.Since(begin), writeErr, IsWSHandshakeRequest(r), headers)
6777
}
6878

6979
return
7080
}
7181
if 100 <= statusCode && statusCode < 500 || statusCode == http.StatusBadGateway || statusCode == http.StatusServiceUnavailable {
72-
if l.LogRequestsAtInfoLevel {
73-
l.logWithRequest(r).Infof("%s %s (%d) %s", r.Method, uri, statusCode, time.Since(begin))
74-
} else {
75-
l.logWithRequest(r).Debugf("%s %s (%d) %s", r.Method, uri, statusCode, time.Since(begin))
76-
}
82+
l.logWithRequestAtLevelf(r, level, "%s %s (%d) %s", r.Method, uri, statusCode, time.Since(begin))
7783
if l.LogRequestHeaders && headers != nil {
78-
if l.LogRequestsAtInfoLevel {
79-
l.logWithRequest(r).Infof("ws: %v; %s", IsWSHandshakeRequest(r), string(headers))
80-
} else {
81-
l.logWithRequest(r).Debugf("ws: %v; %s", IsWSHandshakeRequest(r), string(headers))
82-
}
84+
l.logWithRequestAtLevelf(r, level, "ws: %v; %s", IsWSHandshakeRequest(r), string(headers))
8385
}
8486
} else {
8587
l.logWithRequest(r).Warnf("%s %s (%d) %s Response: %q ws: %v; %s",

0 commit comments

Comments
 (0)