优化非debug模式用户不可见错误提示

This commit is contained in:
孟帅
2023-05-11 15:53:51 +08:00
parent e873204a87
commit f7c8092aee
4 changed files with 25 additions and 4 deletions

View File

@@ -3,12 +3,31 @@
// @Copyright Copyright (c) 2023 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
//
package consts
import "github.com/gogf/gf/v2/text/gstr"
// 错误解释
const (
ErrorORM = "sql执行异常"
ErrorNotData = "数据不存在"
ErrorRotaPointer = "指针转换异常"
)
// 需要隐藏真实错误的Wrap开启访问日志后仍然会将真实错误记录
var concealErrorSlice = []string{ErrorORM, ErrorNotData, ErrorRotaPointer}
// ErrorMessage 错误显示信息非debug模式有效
func ErrorMessage(err error) (message string) {
if err == nil {
return "操作失败!~"
}
message = err.Error()
for _, e := range concealErrorSlice {
if gstr.Contains(message, e) {
return "操作失败,请稍后重试!~"
}
}
return
}

View File

@@ -104,11 +104,13 @@ func responseJson(r *ghttp.Request) {
g.Log().Warningf(ctx, "exception:%v", err)
code = gerror.Code(err).Code()
message = err.Error()
// 是否输出错误到页面
if g.Cfg().MustGet(ctx, "hotgo.debug", true).Bool() {
message = err.Error()
data = charset.ParseErrStack(err)
} else {
message = consts.ErrorMessage(err)
}
} else {
data = r.GetHandlerResponse()

View File

@@ -197,7 +197,7 @@ func (s *sSysLog) AnalysisLog(ctx context.Context) entity.SysLog {
ipData, err := location.GetLocation(ctx, clientIp)
if err != nil {
g.Log().Infof(ctx, "location.GetLocation clientIp:%v, err:%+v", clientIp, err)
g.Log().Debugf(ctx, "location.GetLocation clientIp:%v, err:%+v", clientIp, err)
}
if ipData == nil {

View File

@@ -31,7 +31,7 @@ func (s *sCronClient) Start(ctx context.Context) {
return
}
if config.Client == nil || config.Client.Cron == nil {
if config == nil || config.Client == nil || config.Client.Cron == nil {
g.Log().Errorf(ctx, "CronClient config is invalid")
return
}