From 5148627d2d3806975424a54cd5a525c14597e8e9 Mon Sep 17 00:00:00 2001 From: yaodeshun Date: Fri, 26 Sep 2025 18:27:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=80=E4=B8=AA=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E7=9B=B8=E5=85=B3=E7=9A=84=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package/gamelog/export.go | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 package/gamelog/export.go 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) +}