接口请求部分bug fix + 增加日志记录

This commit is contained in:
2025-04-25 15:56:11 +08:00
parent 5592e0a45c
commit 78f6b61d65
2 changed files with 189 additions and 28 deletions

View File

@ -33,13 +33,17 @@ func Set(l *zap.Logger) {
//
// Date : 18:19 2025/3/31
func Get() *zap.Logger {
if nil == logger {
// 返回日志空实现
return zap.NewNop()
}
return logger
}
var buildHttpLogDataFunc BuildHttpLogDataFunc
// BuildHttpLogDataFunc 构建http请求日志数据的方法
type BuildHttpLogDataFunc func(ctx context.Context, reqCfg *define.Request, response *define.Response) []zap.Field
type BuildHttpLogDataFunc func(ctx context.Context, isResponseLog bool, businessData map[string]any, reqCfg *define.Request, response *define.Response) []zap.Field
func SetBuildDataFunc(f BuildHttpLogDataFunc) {
buildHttpLogDataFunc = f
@ -64,7 +68,7 @@ func Record(ctx context.Context, logInstance *zap.Logger, level consts.LogLevel,
// 未设置构建日志数据的方法
return
}
fields := buildDataFunc(ctx, reqCfg, response)
fields := buildDataFunc(ctx, true, nil, reqCfg, response)
switch level {
case consts.LogLevelDebug:
logInstance.Debug(msg, fields...)
@ -78,3 +82,63 @@ func Record(ctx context.Context, logInstance *zap.Logger, level consts.LogLevel,
logInstance.Panic(msg, fields...)
}
}
// RecordDebug 日志记录
func RecordDebug(msg string, businessData map[string]any, reqCfg *define.Request) {
if nil == reqCfg.Logger {
// 未设置日志实例
return
}
buildDataFunc := GetBuildDataFunc()
if nil == buildDataFunc {
// 未设置构建日志数据的方法
return
}
fields := buildDataFunc(reqCfg.Ctx, false, businessData, reqCfg, nil)
reqCfg.Logger.Debug(msg, fields...)
}
// RecordInfo ...
func RecordInfo(msg string, businessData map[string]any, reqCfg *define.Request) {
if nil == reqCfg.Logger {
// 未设置日志实例
return
}
buildDataFunc := GetBuildDataFunc()
if nil == buildDataFunc {
// 未设置构建日志数据的方法
return
}
fields := buildDataFunc(reqCfg.Ctx, false, businessData, reqCfg, nil)
reqCfg.Logger.Info(msg, fields...)
}
// RecordWarn ...
func RecordWarn(msg string, businessData map[string]any, reqCfg *define.Request) {
if nil == reqCfg.Logger {
// 未设置日志实例
return
}
buildDataFunc := GetBuildDataFunc()
if nil == buildDataFunc {
// 未设置构建日志数据的方法
return
}
fields := buildDataFunc(reqCfg.Ctx, false, businessData, reqCfg, nil)
reqCfg.Logger.Warn(msg, fields...)
}
// RecordError ...
func RecordError(msg string, businessData map[string]any, reqCfg *define.Request) {
if nil == reqCfg.Logger {
// 未设置日志实例
return
}
buildDataFunc := GetBuildDataFunc()
if nil == buildDataFunc {
// 未设置构建日志数据的方法
return
}
fields := buildDataFunc(reqCfg.Ctx, false, businessData, reqCfg, nil)
reqCfg.Logger.Error(msg, fields...)
}