serverLogUtil.lua 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. -- 服务端埋点日志工具文件
  2. local skynet = require "skynet"
  3. local timeUtil = require "utils.timeUtil"
  4. local lib_game_redis = require("lib_game_redis")
  5. local root = {}
  6. local function writeServerLog(key, date, data)
  7. assert(key and date)
  8. local file = string.format("%s-%s", key, date)
  9. skynet.send("statisticLog", "lua", "add_file_log", key, date, data)
  10. end
  11. function root.getActiveKey(date)
  12. return "active:uid:" .. date
  13. end
  14. function root.formatData(data)
  15. return table.concat(data, ";")
  16. end
  17. function root.formatContent(data)
  18. return table.concat(data, ",")
  19. end
  20. -- 新增活跃天玩家
  21. local function l_add_active_user(uid)
  22. local currTime = timeUtil.currentTime()
  23. local date = timeUtil.toDate(currTime)
  24. local key = root.getActiveKey(date)
  25. -- log.info("l_add_active_user key[%s] uid[%s]", tostring(key), tostring(uid))
  26. lib_game_redis:sadd(key, uid)
  27. end
  28. -- 服务端事件埋点
  29. function root.logEvent(uid, version, channel, eventId, extraParams)
  30. local now = timeUtil.currentTime()
  31. local date = timeUtil.toDate(now)
  32. local dateStr = timeUtil.toString(now)
  33. local data = {
  34. date,
  35. dateStr,
  36. uid or "",
  37. version or "",
  38. channel or "",
  39. eventId or "",
  40. extraParams or ""
  41. }
  42. local dataStr = root.formatData(data)
  43. writeServerLog("event", date, dataStr)
  44. end
  45. -- 服务端资源埋点
  46. function root.logResource(uid, eventId, itemId, resChgs, resResult, channel, bandShareCode)
  47. local now = timeUtil.currentTime()
  48. local date = timeUtil.toDate(now)
  49. local dateStr = timeUtil.toString(now)
  50. local cnt =
  51. string.format(
  52. "%s;%s;%s;%s;%s;%s;%s;%s;%s;",
  53. tostring(date),
  54. tostring(dateStr),
  55. tostring(uid),
  56. tostring(bandShareCode or ""),
  57. tostring(channel),
  58. tostring(eventId),
  59. tostring(itemId),
  60. tostring(resChgs or 0),
  61. tostring(resResult or 0)
  62. )
  63. writeServerLog("resource", date, cnt)
  64. end
  65. -- 服务端注册埋点
  66. function root.logRegister(uid, channel, version, machineType, uuid, udid, ip, userType)
  67. local now = timeUtil.currentTime()
  68. local date = timeUtil.toDate(now)
  69. local dateStr = timeUtil.toString(now)
  70. local data = {
  71. date,
  72. uid or "",
  73. dateStr,
  74. channel or "",
  75. version or "",
  76. machineType or "",
  77. uuid or "",
  78. udid or "",
  79. ip or "",
  80. userType or ""
  81. }
  82. local dataStr = root.formatData(data)
  83. -- 添加到每日活跃信息中
  84. l_add_active_user(uid)
  85. writeServerLog("register", date, dataStr)
  86. end
  87. -- 服务端登录埋点
  88. function root.logLogin(uid, channel, version, machineType, operator, network, uuid, udid, ip, userType)
  89. local now = timeUtil.currentTime()
  90. local date = timeUtil.toDate(now)
  91. local dateStr = timeUtil.toString(now)
  92. local data = {
  93. date,
  94. uid or 0,
  95. channel or "",
  96. version or "",
  97. dateStr,
  98. machineType or "",
  99. operator or "",
  100. network or "",
  101. uuid or "",
  102. udid or "",
  103. ip or "",
  104. userType or ""
  105. }
  106. local dataStr = root.formatData(data)
  107. -- 添加到每日活跃信息中
  108. l_add_active_user(uid)
  109. writeServerLog("login", date, dataStr)
  110. end
  111. -- 服务端登出埋点
  112. function root.logLogout(uid, channel, runTimes, version, battleCount, items, isFinishGuide, guideStep)
  113. local now = timeUtil.currentTime()
  114. local date = timeUtil.toDate(now)
  115. local dateStr = timeUtil.toString(now)
  116. local data = {
  117. date,
  118. dateStr,
  119. uid or "",
  120. channel or "",
  121. runTimes or "",
  122. version or ""
  123. }
  124. local dataStr = root.formatData(data)
  125. -- 添加到每日活跃信息中
  126. l_add_active_user(uid)
  127. writeServerLog("logout", date, dataStr)
  128. end
  129. -- 服务端支付埋点
  130. function root.logPay(playerInfo, orderInfo)
  131. if is_empty(playerInfo) or is_empty(orderInfo) then
  132. return
  133. end
  134. local now = timeUtil.currentTime()
  135. local date = timeUtil.toDate(now)
  136. local dateStr = timeUtil.toString(now)
  137. local data = {
  138. date,
  139. dateStr,
  140. playerInfo.uid or "",
  141. playerInfo.bandShareCode or "",
  142. playerInfo.version or "",
  143. orderInfo.orderNo or "",
  144. orderInfo.pay or "",
  145. orderInfo.itemId or "",
  146. orderInfo.amount or "",
  147. orderInfo.status or "",
  148. orderInfo.retmsg or ""
  149. }
  150. local dataStr = root.formatData(data)
  151. writeServerLog("pay", date, dataStr)
  152. end
  153. return root