// Package logger ... // // Description : logger ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2024-07-24 21:14 package logger import ( "context" "os" "git.zhangdeman.cn/zhangdeman/consts" "git.zhangdeman.cn/zhangdeman/network/util" "git.zhangdeman.cn/zhangdeman/serialize" "git.zhangdeman.cn/zhangdeman/wrapper" "go.uber.org/zap" ) func getStrVal(ctx context.Context, key string) string { val := ctx.Value(key) if nil == val { return "" } return wrapper.AnyDataType(val).ToString().Value() } // NewLogData ... // // Author : go_developer@163.com<白茶清欢> // // Date : 16:21 2024/7/23 func NewLogData(ctx context.Context, logType string, code string, logData map[string]any) *LogData { hostname, _ := os.Hostname() if nil == ctx { ctx = context.Background() } commonLogData := &LogData{ Env: getStrVal(ctx, consts.GinEnvField), Uri: getStrVal(ctx, consts.GinRequestURIField), TraceID: getStrVal(ctx, consts.GinTraceIDField), UserID: getStrVal(ctx, consts.GinUserIDField), UserRoleID: getStrVal(ctx, consts.GinUserRoleIDField), OperateMode: getStrVal(ctx, consts.GinOperateModeField), LogType: logType, CodeVersion: getStrVal(ctx, consts.GinCodeVersionField), ServiceVersion: getStrVal(ctx, consts.GinServiceVersionField), ClientIp: getStrVal(ctx, consts.GinClientIpField), ServerIp: util.IP.GetHostIP(), Hostname: hostname, Code: code, Data: logData, } return commonLogData } // ZapLogDataList 记录的日志数据字段列表 // // Author : go_developer@163.com<白茶清欢> // // Date : 17:33 2024/7/23 func ZapLogDataList(logData *LogData) []zap.Field { logDataList := make([]zap.Field, 0) if logData == nil { return logDataList } var mapData map[string]any _ = serialize.JSON.Transition(logData, &mapData) for k, v := range mapData { logDataList = append(logDataList, zap.Any(k, v)) } return logDataList }