日志打印堆栈封装
func WithError(err error, message ...string) error {
var u *utils.Error
var SysError *utils.Error
var err1 error
if !errors.As(err, &u) {
SysError = utils.NewSysError(err)
} else {
SysError = err.(*utils.Error)
}
if SysError.IsHasStack {
if len(message) > 0 {
err1 = errors.WithMessage(err, message[0])
}
logger.WithFields(logrus.Fields{}).Errorln(err1, message)
} else {
if len(message) == 0 {
err1 = errors.WithStack(err)
} else {
err1 = errors.Wrap(err, message[0])
}
SysError.IsHasStack = true
logger.WithFields(logrus.Fields{}).Errorln(err1, message)
Errorf("this is a error stack: %+v", err1)
}
return SysError
}