diff --git a/package/gamelog/export.go b/package/gamelog/export.go new file mode 100644 index 0000000..6896af1 --- /dev/null +++ b/package/gamelog/export.go @@ -0,0 +1,45 @@ +package gamelog + +import ( + "encoding/json" + "time" + + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" + "github.com/gogf/gf/v2/util/gconv" +) + +// 获取日志行 +func (sdk *SDK) GetLogItem(uid, event string, property map[string]any, timezone string, customEventTime ...time.Time) string { + loc := time.Local + if _loc := getLocationMapValue(timezone); _loc != nil { + loc = _loc + } + if len(property) == 0 { + property = map[string]any{"ts": gtime.Now().Timestamp()} + } + var et *gtime.Time + if len(customEventTime) > 0 { + et = gtime.NewFromTime(customEventTime[0]) + } else { + et = gtime.Now() + } + pstr, err := json.Marshal(property) + if err != nil { + g.Log().Errorf(ctx, "GetLogItem Fail ! json marshal property err: %v", err) + return "" + } + item := []any{ + uid, + event, + pstr, + et.TimestampMilli(), + et.In(loc).Format(datetimeFmt), + } + itemstr, err := json.Marshal(item) + if err != nil { + g.Log().Errorf(ctx, "GetLogItem Fail ! json marshal item err: %v", err) + return "" + } + return gconv.String(itemstr) +}