http: Avoid panic if handler errors lack underlying error value

Fixes #2845
This commit is contained in:
Matthew Holt 2019-10-30 21:41:52 -06:00
parent 0dd9243478
commit 8d3c64932e
No known key found for this signature in database
GPG Key ID: 2A349DD577D586A5

View File

@ -368,7 +368,11 @@ type ServerLogConfig struct {
func errLogValues(err error) (status int, msg string, fields []zapcore.Field) {
if handlerErr, ok := err.(HandlerError); ok {
status = handlerErr.StatusCode
msg = handlerErr.Err.Error()
if handlerErr.Err == nil {
msg = err.Error()
} else {
msg = handlerErr.Err.Error()
}
fields = []zapcore.Field{
zap.Int("status", handlerErr.StatusCode),
zap.String("err_id", handlerErr.ID),