@@ -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
163163func 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
169175func 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
175181func 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