26 lines
517 B
Go
26 lines
517 B
Go
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)
|
|
}
|
|
}
|