nidus-sync/debug/errors.go

27 lines
517 B
Go
Raw Permalink Normal View History

package debug
import (
"errors"
"reflect"
"github.com/rs/zerolog/log"
)
func LogErrorTypeInfo(err error) {
if err == nil {
log.Error().Msg("Error is nil")
return
}
// Log current error type
errType := reflect.TypeOf(err)
log.Warn().Err(err).Str("type", errType.String()).Str("pkgPath", errType.PkgPath()).Msg("Error type info")
// Recursively log wrapped errors
wrappedErr := errors.Unwrap(err)
if wrappedErr != nil {
log.Info().Msg("Contains wrapped error")
LogErrorTypeInfo(wrappedErr)
}
}