serverLogUtil.lua 4.4 KB

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