Merge pull request #217 from pharaujo/patch-1

Correctly handle HTTP errors in RequestLogPolicy
This commit is contained in:
Mohit Sharma 2020-11-04 21:17:14 +05:30 коммит произвёл GitHub
Родитель 6d84fabf1c 8c5ecd9e2a
Коммит a3810da520
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 13 добавлений и 7 удалений

Просмотреть файл

@ -62,15 +62,21 @@ func NewRequestLogPolicyFactory(o RequestLogOptions) pipeline.Factory {
logLevel, forceLog = pipeline.LogWarning, true
}
if err == nil { // We got a response from the service
sc := response.Response().StatusCode
if ((sc >= 400 && sc <= 499) && sc != http.StatusNotFound && sc != http.StatusConflict && sc != http.StatusPreconditionFailed && sc != http.StatusRequestedRangeNotSatisfiable) || (sc >= 500 && sc <= 599) {
logLevel, forceLog = pipeline.LogError, true // Promote to Error any 4xx (except those listed is an error) or any 5xx
var sc int
if err == nil { // We got a valid response from the service
sc = response.Response().StatusCode
} else { // We got an error, so we should inspect if we got a response
if r := err.(StorageError).Response(); r != nil {
sc = r.StatusCode
} else {
// For other status codes, we leave the level as is.
sc = -1
}
} else { // This error did not get an HTTP response from the service; upgrade the severity to Error
logLevel, forceLog = pipeline.LogError, true
}
if ((sc >= 400 && sc <= 499) && sc != http.StatusNotFound && sc != http.StatusConflict && sc != http.StatusPreconditionFailed && sc != http.StatusRequestedRangeNotSatisfiable) || (sc >= 500 && sc <= 599) || sc == -1 {
logLevel, forceLog = pipeline.LogError, true // Promote to Error any 4xx (except those listed is an error) or any 5xx
} else {
// For other status codes, we leave the level as is.
}
if shouldLog := po.ShouldLog(logLevel); forceLog || shouldLog {