Skip to content

Commit ac13962

Browse files
authored
add CallWarn (#152)
1 parent c72f05f commit ac13962

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

helper.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,14 +162,20 @@ func createAccessEntry(r *http.Request, start time.Time, statusCode int, err err
162162
// Call logs the result of an outgoing call
163163
func Call(r *http.Request, resp *http.Response, start time.Time, err error) {
164164
fields := fieldsForCall(r, resp, start, err)
165-
logCall(fields, r, resp, err)
165+
logCall(fields, r, resp, err, logrus.ErrorLevel)
166+
}
167+
168+
// Call logs the result of an outgoing call. Same as Call but never logs errors on warning level instead on error level.
169+
func CallWarn(r *http.Request, resp *http.Response, start time.Time, err error) {
170+
fields := fieldsForCall(r, resp, start, err)
171+
logCall(fields, r, resp, err, logrus.WarnLevel)
166172
}
167173

168174
// FlakyCall logs the result of an outgoing call and marks it as flaky
169175
func FlakyCall(r *http.Request, resp *http.Response, start time.Time, err error) {
170176
fields := fieldsForCall(r, resp, start, err)
171177
fields[FlakyField] = true
172-
logCall(fields, r, resp, err)
178+
logCall(fields, r, resp, err, logrus.ErrorLevel)
173179
}
174180

175181
func fieldsForCall(r *http.Request, resp *http.Response, start time.Time, err error) logrus.Fields {
@@ -199,7 +205,7 @@ func fieldsForCall(r *http.Request, resp *http.Response, start time.Time, err er
199205
return fields
200206
}
201207

202-
func logCall(fields logrus.Fields, r *http.Request, resp *http.Response, err error) {
208+
func logCall(fields logrus.Fields, r *http.Request, resp *http.Response, err error, levelForErrors logrus.Level) {
203209
entry := Log.WithContext(r.Context()).WithFields(fields)
204210

205211
if ctxErr := r.Context().Err(); ctxErr != nil {
@@ -208,7 +214,7 @@ func logCall(fields logrus.Fields, r *http.Request, resp *http.Response, err err
208214
}
209215

210216
if err != nil {
211-
entry.Error(err)
217+
entry.Log(levelForErrors, err)
212218
return
213219
}
214220

@@ -220,7 +226,7 @@ func logCall(fields logrus.Fields, r *http.Request, resp *http.Response, err err
220226
} else if resp.StatusCode >= 400 && resp.StatusCode <= 499 {
221227
entry.Warn(msg)
222228
} else {
223-
entry.Error(msg)
229+
entry.Log(levelForErrors, msg)
224230
}
225231
return
226232
}

0 commit comments

Comments
 (0)