27 lines
514 B
Go
27 lines
514 B
Go
|
|
package db
|
||
|
|
|
||
|
|
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)
|
||
|
|
}
|
||
|
|
}
|