当前位置:首页 > 帮助文档 > iOS服务端日志接入说明

IOS服务端日志接入-Java版

  1. 接入流程
  2. 客户端接口介绍
  3. 服务端接口介绍
  4. jar包导入说明(服务端调用)
  5. 服务端日志接入详解(服务端调用)
  6. 附录1.1货币规范

1 接入流程

日志接入流程大致分为四个步骤:

1.客户端技术调用SDK提供的接口来获取ServiceCode;
2.服务端日志接入负责人根据日志接入流程文档,调用日志接口,完成几个基础日志的记录;
3.掌趣科技数据中心对服务端接入的日志进行格式和字段内容检查;
4.服务端日志接入开发负责人与掌趣技术人员通过日志接入测试用例后,日志接入工作正式完成。

2 客户端接口介绍

2.1 获取ServiceCode(客户端调用,必须)

功能说明
获取 ServiceCode用于服务端日志统计

接口示例

3 服务端接口介绍

服务端日志接口,用于采集诸如玩家注册、登录,玩家虚拟物品变更、属性变更,玩家游戏内的任务、关卡场景等用户行为,为产品运营,数据分析,推广营销等工作提供数据支持。

在调用日志接口时,需要为日志接口提供客户端配置信息,设备信息,用户信息,角色信息,日志内容等参数,最终组装成为一个json数组,作为http请求的content body发送到数据中心日志接口

配置类型字段名 字段类型字段样例字段含义备注
Log对象idString10006日志id

 

serviceCodeString

 

封装设备信息的字符串

 

uidString0100010000000000000000000000000090019780用户中心UID

 

clientIpString1.202.218.162游戏客户端ip地址

 

serverString1逻辑服

 

roleIdString671092810角色ID

 

roleNameString马克.吐温角色名

 

roleLevelString10角色等级

 

roleVipLevelString1角色VIP等级

 

customIdStringlz_rolelogin自定义日志id(如果该日志不是自定义日志,则该字段为空)

 

roleSpecAttrMap<String,String>

 

用于封装角色特殊属性的一个Map

 

logInfoMap<String,String>

 

用于封装具体日志信息的一个Map

 

createLogTimelong

 

记录游戏日志生成的时间戳,因为游戏采用异步进程的方式发送日志,日志发送的时间,不一定为日志生成的时间,所以要记录日志生成的时间

 

3.1 需要注意的地方

编码:当传入中文字符串时,务必确保该中文字符串使用的是utf8编码。例如,商品名称。

配置一致性:有的产品人员和开发人员自行设定的字段信息,也必须由相应的负责人确保内容的一致性。 例如同一个逻辑服下,如果在用户登录注册时调用日志接口传递的逻辑服标识是1001,那么在调用计费中心的充值计费接口时逻辑服标识也应该是同样的1001,而不应该是其他的值。

ID一致性:同样的,如果A用户在购买一个极品武器时记录的物品id是001weapon,那么另外一个用户在拍卖同样一个极品武器时物品id也应该是001weapon。

接入日志类型的要求:目前UC平台的游戏都需要接入10006注册日志、10007登录日志和10010角色变更日志,其它的日志类型请根据游戏各自需要接入。

需要导入的jar包:lib中的第三方jar包请根据项目需要导入。

插件运行日志:如果需要运行日志,通过调用PalmLogSender.startRunLog("/opt/ourpalm/log");来开启调试模式,传入参数即为生成运行日志的目录。

使用PalmLogSender.sendLog(log)接口仍然能发送单个日志,使用日志接入详解的方式进行单个日志的组装即可。

通常情况下,使用我们提供的prism-client.jar就足够完成日志发送工作,如果研发人员认为有必要自行实现日志发送功能,请先与我们取得联系,避免沟通不到位引发接入过程中的各种问题。
掌趣平台会对游戏服的IP进行鉴权,请游戏提供游戏服的IP添加至日志接收服的IP白名单,未添加白名单会导致服务端日志发送不成功。

4 jar包导入说明(服务端调用)

为了便于研发人员接入服务端日志接口,我们开发了一个jar包用于提供日志接入需要,lib中的第三方jar包请根据项目需要导入,直接使用这个jar包的接口来发送日志。

注意:为了避免日志插件对游戏性能等产生影响,请务必开启一个异步的进程来调取我们的日志插件发送日志。日志插件不要和游戏直接地耦合在一起。

 jar包工程名叫prism-client,基于java jdk1.7(java sdk 7.0)代码结构如下图所示
 
 我们提供了一个服务类,类名为
 net.gamebean.prism.PalmLogSender
 在这个类中我们提供了日志发送方式的示例,可以实现批量发送玩家的日志

4.1 配置信息说明

prism-client在导入工程后,在prismclient_config.properties文件里有一些配置项需要研发人员根据实际情况手动修改,一般不许变动此文件的配置信息,我们将配置项对应的意义列举如下

属性名 属性值示例 说明
log.sendurl http://bicenter.gamebean.net/bicenter/prismClient/sendLog.do 2.1版及之前日志插件发送日志的地址
log.sendurlV1 http://bicenter.gamebean.net/bicenter/prismClient/sendLogV1.do 3.0版本日志插件发送日志的地址
uploadUrl http://bicenter.gamebean.net/bicenter/file/upload.do 失败日志文件上传地址
Log.size log.size=300 日志数组的最大上线,不能更改,如有更大的需求,请联系日志服务端人员

5 服务端日志接入详解(服务端调用)

目前日志接口支持以下日志的接入

日志ID                

日志名                

10006

服务端玩家注册日志

10007

服务端玩家登录日志

10008

服务端玩家充值日志

10091

服务端玩家货币变更日志

10009

服务端玩家物品变更日志

10010

服务端玩家属性变更日志

10011

服务端异常日志

10013

服务端玩家商品属性变更日志

10014

服务端玩家卡牌属性变更日志

11000

服务端自定义日志

11101

服务端玩家任务日志

11102

服务端玩家副本关卡场景日志

11103

服务端玩家自定义行为日志

12001

服务端玩家自定义交互日志

 

5.1 玩家角色注册日志(10006)

当玩家注册一个游戏内的新角色时,记录一条角色注册日志,角色注册日志没有特别要传入的日志字段,只需填入用户id和角色基本信息即可。
                日志格式示例:

该记录表示玩家马克吐温已经在逻辑服1注册完成了

5.2 玩家角色登陆日志(10007)

当玩家的角色登录游戏时,记录一条角色登录日志,角色登录日志没有特别要传入的日志字段,只需填入用户id和角色基本信息即可。
                日志格式示例:

该记录表示玩家马克吐温已经登录逻辑服1了

 

5.3 玩家充值日志(10008)

当用户已经启动游戏客户端,且通过发货通知接口收到发货通知并给用户成功发货时,需要记录一条对应的发货成功日志来跟踪玩家充值。


                     LogId            

日志名称                

字段名                

字段类型                

字段说明                

备注                

10008

玩家充值日志

payChannelId

String

支付方式

例如,91支付,UC支付等,非必需

orderNo

String

订单号

必需

currencyType

String

货币类型

(参照附1.1货币规范)必需

currencyAmount

Integer

订单金额

单位:分,必需

itemId

String

商品ID

游戏中商品或者道具ID,必需

itemName

String

商品名称

便于运营人员识别商品,一般传入中文,必需

itemCount

Integer

商品个数

必需

支付方式ID:如支付宝,神州付,财付通,微信支付等,由开发者自行指定,需要在同一个产品的所有订单中保持支付方式id的一致性
                订单号:由开发者自行指定该笔充值的唯一标识
                订单金额:即发货通知接口的订单金额
                货币类型:玩家支付的是人民币还是美元或者欧元,见附1.1货币规范
                商品ID:用于记录本次充值给用户发放了哪一个商品,商品id建议由英文字母或数字组成,以避免乱码等问题。
                商品名称:商品名称建议为中文信息。
                日志时间字段,sdk会根据调用日志接口时间自行填充。
                用户id,角色名称,角色id等字段,sdk会根据角色登录时保存的信息自行填充。

日志格式示例:
               

该记录表示当前登录的角色马克.吐温充值100分人民币购买游戏内100钻石

5.4 玩家货币变更日志(10091)

当用户在游戏内,因为种种原因产生虚拟货币的增加和消耗时,需要记录一条对应的虚拟货币变更日志。如果玩家的一次用户行为导致多种虚拟货币变更,比如完成一次充值同时获得1000钻石20000铜币,则需要记录相应的两条虚拟货币变更日志。

 

LogId                

日志名称                

字段名                

字段类型                

字段说明                

备注                

10091

玩家虚拟货币变更日志

updateType

String

变更类型

1:新增
                       0:消耗

itemId

String

货币ID

 

itemName

String

货币名称

便于运营人员识别商品,一般传入中文

isPrecious

String

是否为珍贵物品

1:是
                       0:否

itemCount

Integer

货币个数

必须是一个大于0的整数

remains

Integer

变化后货币数量

必须是一个大于等于0的整数

custom

String

自定义

 

变更类型:用于标识本次变更是新增了虚拟货币还是消耗了虚拟货币,新增记录1,消耗记录0。
                货币ID:用于记录本次引发虚拟货币变更的货币ID。
                货币名称:用于记录本次引发虚拟货币变更的货币名称。
                是否为珍贵物品:用于区分珍贵物品,一般情况下直接充值获得的即为珍贵物品,例如 钻石和铜币, 钻石可视为珍贵物品,铜币可视为非珍贵物品。
                货币个数:用于记录用户本次消费行为涉及多少个货币,如果用户本次消费行为与具体货币无关,则该字段置空即可。
                变化后货币数量:用于记录用户本次消费完成后用户总的货币剩余量
                自定义变更描述:用于标识用户因为什么原因变更虚拟货币。

 

日志格式示例:
               

上面日志表示当前登录的角色为了购买道具花费了100钻石,剩余钻石200。

5.5 玩家物品变更日志(10009)

当用户在游戏内,因为种种原因产生虚拟物品的增加和消耗时,需要记录一条对应的虚拟物品变更日志。如果玩家的一次用户行为导致多种虚拟物品变更,比如完成一次史诗副本同时获得1000珍珠20000石币,则需要记录相应的两条虚拟物品变更日志。

 

LogId                

日志名称                

字段名                

字段类型                

字段说明                

备注                

10009

玩家虚拟物品变更日志

updateType

String

变更类型

1:新增
                       0:消耗

itemId

String

商品ID

 

itemName

String

商品名称

便于运营人员识别商品,一般传入中文

itemCount

Integer

商品个数

必须是一个大于0的整数

remians

Integer

商品剩余个数必须是一个大于
                     等于0的整数

custom

String

自定义

 

变更类型:用于标识本次变更是新增了虚拟物品还是消耗了虚拟物品,新增记录1,消耗记录0。
                商品ID:用于记录用户本次是因为哪一个游戏内的商品引发的虚拟物品变更,例如购买游戏内的装备、经验、头衔、坐骑等。商品名称由游戏策划人员自行定义,比如 0001对应装备图纸,0002对应黄金翅膀,0003对应经验丹,0004对应体力等等。传入0001,0002,0003……这些ID即可
                商品名称:用于记录用户本次是因为哪一个游戏内的商品引发的虚拟物品变更,例如购买游戏内的装备、经验、头衔、坐骑等。商品名称由游戏策划人员自行定义,比如 0001_装备图纸,0002_黄金翅膀,0003_经验丹,0004_体力等等。统计结果也会直接将日志中的商品名称展示出来,如果用户本次变更行为与具体商品道具无关,则该字段置空即可。
                商品个数:用于记录用户本次消费行为涉及多少个商品,如果用户本次消费行为与具体商品无关,则该字段置空即可。
               商品剩余个数:用于记录本次商品获得或者消耗后,当前剩余的个数。
                自定义变更描述:用于标识用户因为什么原因变更虚拟物品(虚拟货币),如任务获得,怪物掉落,系统赠送,副本奖励,世界喊话,家族奉献,婚姻喜宴等等。

 

日志格式示例:
               

上面两条日志表示当前登录的角色马克.吐温为了购买id为玛格汉铁锤的武器花了100钻石,剩余255钻石,拥有了2把玛格汉铁锤。

 

5.6 玩家属性变更日志(10010)单属性变动

当用户的角色,发生一些属性上的变化时,记录相应的角色属性变更日志。例如等级提升,军衔提升,VIP等级提升,属性点重配,种族天赋变更等等。


                                    LogId            

日志名称                

字段名                

字段类型                

字段说明                

备注                

10010

玩家属性变更日志

propKey

String

属性标识

 

propValue

String

新属性值

 

rangeability

String

变更值

 

custom

String

自定义

如无法概括
                       原因可留空

属性标识:角色变更了哪种属性,其中等级标识为level,VIP等级标识为vipLevel,其余属性标识由游戏产品和开发人员自行设定。请注意标识大小写。
                新属性值:角色完成属性变更之后,该属性的值变成了什么。
                变更值:如果该属性值是一个数字,比如等级level,那么本次用户的等级变更了多少,例如购买大礼包level连升三级,则变更值为3。
               自定义:用于记录属性变化的原因,如果无法概括原因可以留空

日志格式示例:

这两条日志表示当前角色马克.吐温连升了两级,目前等级为3。他的vip等级升了一级,目前vip等级为1。

5.7 玩家属性变更日志(10010)多属性变动

当用户的角色,发生一些属性上的变化时,记录相应的角色属性变更日志。例如等级提升,军衔提升,VIP等级提升,属性点重配,种族天赋变更等等。
                为了满足同一个玩家同时有多个属性变化的游戏场景,我们提供第二种玩家属性变更日志的接入方式,同时传入玩家变更前和变更后的属性Map,由数据中心判断玩家有哪些属性发生了变化


                     LogId            

日志名称                

字段名                

字段类型                

字段说明                

备注                

10010

玩家属性变更日志

propMapOld

Map

旧属性集合

 

propMapNew

Map

新属性集合

 

旧属性集合:玩家的角色在变更之前有哪些属性值,用Map<String, String>的对象来保存,用属标识作为key,属性值作为val。
                新属性集合:玩家的角色在变更之前有哪些属性值,用Map<String, String>的对象来保存,用属标识作为key,属性值作为val。

注意,只有数值类型的属性,才应该通过这个方法来发送属性变更日志,如果是一些文本类型的属性,比如玩家更改了角色名称,服务器id,种族天赋类型等,则不应该使用这个方法来保存

 

日志格式示例:


这条日志表示当前角色马克.吐温等级升了1级,目前等级为4。他的hp从1000增加到了1500,mp也从1000增加到了1500。三个属性发生了变化,vip等级不变

5.8 玩家物品属性变更日志(10013)

某些游戏的游戏内商品也有各种属性,比如射击类有戏的枪械会因为改装增加各种新功能,赛车游戏的赛车可以更改引擎、喷漆、轮胎,rpg游戏的玩家会饲养和升级宠物,升级随从的等级和装备等等,因此我们提供了一个游戏内商品属性变更日志,用于记录游戏内各种物品,道具,宠物,随从,武器的等级、技能等属性变更情况。

LogId                

日志名称                

字段名                

字段类型                

字段说明                

备注                

10013

玩家商品属性变更日志

itemId

String

商品ID

必需

itemName

String

商品名称

便于运营人员识别商品,一般传入中文,必需

propKey

String

属性标识

必需

propValue

String

新属性值

必需

rangeability

String

变更值

必需

custom

String

自定义如无法概括
                     原因可留空

    玩家商品属性变更日志的格式与玩家属性变更日志的区别在于,商品属性变更日志中多了两个用于描述商品的itemId和itemName字段。
                日志格式示例:
                该条日志记录,玩家的玛格汉铁锤等级提升1级,现在的等级为2级

5.9 玩家卡牌属性变更日志(10014)

对于卡牌类游戏而言,卡牌的收集和升级一直是游戏重点,比如卡牌的稀有程度,等级变化,技能等级等等,因此我们提供了一个游戏内卡牌属性变更日志,用于记录游戏内对应英雄、侠客、随扈等等卡牌的属性变更情况。


                     LogId            

日志名称                

字段名                

字段类型                

字段说明                

备注                

10014

玩家卡牌属性变更日志

cardId

String

卡牌ID

必需

cardName

String

卡牌名称

便于运营人员识别商品,一般传入中文,必需

propKey

String

属性标识

必需

newValue

String

新属性值

必需

oldValue

String

旧属性值

必需

custom

String

自定义如无法概括
                     原因可留空

玩家卡牌属性变更日志的格式与玩家商品属性变更日志的区别在于,商品属性变更日志中记录的是游戏内商品道具的属性变更,比如武器装备升级之类,而卡牌属性变更则适用于卡牌类游戏。
                日志格式示例:
                该条日志记录,玩家的侠客——李星云,进阶从绿变成了蓝+1。

 

5.10 任务,关卡场景等事件日志说明

当运营人员需要对游戏内的任务完成情况,关卡完成情况进行记录时,即可记录一条游戏自定义事件。在记录日志之前,游戏运营人员有必要向掌趣科技统计后台提供一份任务,关卡,以及其他自定义事件的id和名称对照表,并在掌趣科技统计后台描述任务,关卡,道具之间的关系。

任务,副本关卡日志的格式均为stageId,stageName,detail三个字段,三个字段的值完全由游戏研发人员和运营人员自行指定,例如新手引导任务可以用 newbieguide标识stageId,也可以用task001或其他字符串标识来表示stageId,任务完成,既可以用 SUCC表示,也可以用complete表示,还可以根据任务的中断,放弃,失败等多种状况,为同一个任务记录多条日志。对于同一种事件结果,建议使用同样的detail内容来描述。尽量做到同一个detail的含义一致,同一个事件结果的detail一致。

需要注意的地方
                无论是任务,关卡还是其他自定义事件日志,taskId/stageId/actId字段都必须是相对于该日志的logId唯一,不能够与其他任务,关卡或道具的id字段重复。

尽管任务,副本/场景,以及游戏自定义事件三个日志的字段数量和格式相同,但是我们希望研发人员能够按照预设的不同logid和logkey分别记录这三类日志,这样一来,便于将相对重要的日志同其它日志区分出来,也便于我们对任务和场景副本日志采用预设的特定算法来进行统计运算。

我们要求用以下的默认字段来记录事件日志的detail,以便统计后台可以用默认的配置来对游戏自定义事件进行计算成功率,通过率等进一步指标。
                如果列表中的detail无法满足游戏的日志记录要求,也允许各个游戏使用自己定义的detail来记录日志,实际上在下面的日志范例中也有一些detail字段灵活发挥的情况。

事件类型                

detail                

含义                

role-task

accept

接任务

fail

任务失败

cancel

放弃任务

succ

达成任务条件

complete

任务完成

 

 

 

role-stage

begin

场景开始

fail

场景失败

cancel

场景取消

end

场景结束

 

 

 

role-act

begin

事件开始

fail

事件失败

cancel

事件取消

end

事件结束

5.11 玩家任务日志(11101)

LogId                

日志名称                

字段名                

字段类型                

字段说明                

11101

任务日志

taskId

String

任务编码,英文或数字

taskName

String

人物名称,最好传中文

detail

String

相关信息,全为英文

日志格式示例:

这两条日志表示,当前角色马克.吐温接受并且完成了新手流程任务1.

5.12 玩家关卡场景日志(11102)

LogId                

日志名称                

字段名                

字段类型                

字段说明                

11102

副本场景日志

stageId

String

副本场景标识,英文或数字

stageName

String

副本场景名称,最好传中文

detail

String

相关信息,全为英文

日志格式示例:
               

这两条日志表示,当前角色开始并且完成了场景死亡矿井副本.

5.13 玩家自定义行为日志(11103)

LogId                

日志名称                

字段名                

字段类型                

字段说明                

11103

游戏自定义事件

actId

String

事件标识,英文或数字

actName

String

事件名称,最好传中文

detail

String

相关信息,参考上面detail定义,尽量用英文

日志格式示例:
               这条日志表示,当前角色开始了一场战斗

 

5.14 玩家交互日志(12001)

游戏中除了角色与系统间发生的事件之外,还会有玩家之间的交互事件,这类事件使用交互事件日志来记录。


                     LogId            

日志名称                

字段名                

字段类型                

字段说明                

12001

交互行为日志

interactId

String

自定义事件编码,数字或字母

interactName

String

自定义事件名称,建议写中文

targetType

String

目标类型,0:系统,1:玩家,2:自定义类型

targetCode

String

目标,若目标类型为玩家则为对方角色ID

targetInfo

String

目标详细信息,若目标类型为玩家,则为对方逻辑服ID

detail

String

相关信息,全为英文

与游戏自定义事件相比,交互事件多了一个交互对象的概念,targetType字段用于描述本次交互的对象是哪一类对象,0、系统交互,1、玩家之间互动,2、游戏自定义交互。
                系统交互事件应该尽量使用游戏自定义事件来记录,除非交互对象较为重要需要额外记录。
                targetCode用于描述当前玩家与具体哪一个对象进行了交互,当targetType为2时,targetCode必须为对方角色id,targetInfo必须为对方逻辑服标识。

日志格式示例:
               

这条日志表示当前玩家马克吐温添加了玩家珍妮佛为好友

 

5.15 关卡场景事件日志综合使用

下面我们用一系列日志,来记录一个复杂的副本过程,以此作为游戏内自定义事件的开发样例


                     logkey            

事件                

日志                

role-task

接受任务:迪菲亚兄弟会

time:2014-04-18 20:00:00
                            taskId:taskdifeiya003
                            taskName:迪菲亚兄弟会
                            detail:accept

role-stage

进入死亡矿井

time:2014-04-18 21:00:00
                            stageId:enterstage
                            stageName:死亡矿井
                            detail:deadmine

role-act

boos战格鲁巴托克开始

time:2014-04-18 21:05:00
                            actId:fightdeadmineboos1
                            actName:boos战格鲁巴托克
                            detail:begin

role-act

boss战格鲁巴托克完成

time:2014-04-18 21:07:00
                            actId:fightdeadmineboos1
                            actName:boss战格鲁巴托克
                            detail:end

role-act

boos战格范克里夫开始

time:2014-04-18 21:20:00
                            actId:fightdeadmineboos4
                            actName:boos战格范克里夫
                            detail:begin

role-act

boss战格范克里夫失败

time:2014-04-18 21:21:00
                            actId:fightdeadmineboos4
                            actName:boos战格范克里夫
                            detail:fail

role-act

死亡

time:2014-04-18 21:21:00
                            actId:dead
                            actName:角色死亡
                            detail:end

role-stage

出死亡矿井

time:2014-04-18 21:21:20
                            stageId:quitstage
                            stageName:死亡矿井
                            detail:deadmine

role-stage

进入死亡矿井

time:2014-04-18 21:23:20
                            stageId:enterstage
                            stageName:死亡矿井
                            detail:deadmine

role-act

复活

time:2014-04-18 21:23:21
                            actId:bufferuse
                            actName:复活
                            detail:relive

role-act

boos战格范克里夫开始

time:2014-04-18 21:25:00
                            actId:fightdeadmineboos4
                            actName:boos战格范克里夫
                            detail:begin

role-act

boos战格范克里夫完成

time:2014-04-18 21:30:00
                            actId:fightdeadmineboos4
                            actName:boos战格范克里夫
                            detail:end

role-task

任务迪菲亚兄弟会达到完成条件

time:2014-04-18 21:30:00
                            taskId:taskdifeiya003
                            taskName:迪菲亚兄弟会
                            detail:succ

role-stage

出死亡矿井

time:2014-04-18 21:40:20
                            stageId:quitstage
                            stageName:死亡矿井
                            detail:deadmine

role-task

交任务:迪菲亚兄弟会

time:2014-04-18 21:45:00
                            taskId:taskdifeiya003
                            taskName:迪菲亚兄弟会
                            detail:complete

从中,运营人员可以发现,当前角色马克.吐温进入死亡矿井后,顺利击败第一个boss,但是在挑战最终boss范克里夫时不幸阵亡,玩家没有气馁,复活之后重整旗鼓,终于击败范克里夫,打通了死亡矿井,完成了任务迪菲亚兄弟会。

logKey                

事件                

日志                

role-interact

加入公会:圣光兄弟会

time:2014-04-18 22:00:00
                            interactId:jioncrop
                            interactName:加入公会
                            targetType:0
                            targetCode:crop100991
                            targetInfo:crop
                            detail:end

role-act

获得一次公会等级提升

time:2014-04-18 22:01:00
                            actId:croppromote
                            actName:公会等级提升
                            detail:end

role-interact

对敌对公会:战神传说发起公会战争

time:2014-04-18 22:10:00
                            interactId:declarewar
                            interactName:参战
                            targetType:0
                            targetCode:crop1000022
                            targetInfo:crop
                            detail:begin

role-stage

进入战场:长城

time:2014-04-18 22:11:00
                            stageId:enterbattlefield
                            stageName:进入战场
                            detail:greatwall

role-interact

攻击敌对玩家

time:2014-04-18 22:11:21
                            interactId:attack
                            interactName:PVP攻击
                            targetType:1
                            targetCode:1002000100021
                            targetInfo:1002
                            detail:-3000

role-interact

被敌对玩家杀死

time:2014-04-18 22:11:39
                            interactId:killed
                            interactName:pvp战败死亡
                            targetType:1
                            targetCode:1002000100021
                            targetInfo:1002
                            detail:-5000

role-interact

被敌对玩家嘲弄

time:2014-04-18 22:11:42
                            interactId:laughed
                            interactName:遭到嘲弄
                            targetType:1
                            targetCode:1002000100021
                            targetInfo:1002
                            detail:end

role-debit

使用收费道具:复仇之镰

time:2014-04-18 22:11:50
                            roleLevel:50
                            roleVipLevel:3
                            updateType:0
                            itemId:killer1001
                            itemName:复仇之镰
                            itemCount:1
                            customer:use

role-interact

攻击敌对玩家

time:2014-04-18 22:11:21
                            interactId:attack
                            interactName:pvp攻击
                            targetType:1
                            targetCode:1002000100021
                            targetInfo:1002
                            detail:-99999

role-interact

击杀敌对玩家

time:2014-04-18 22:11:39
                            interactId:kill
                            interactName:pvp战斗击杀对方
                            targetType:1
                            targetCode:1002000100021
                            targetInfo:1002
                            detail:-99999

role-stage

退出战场:长城

time:2014-04-18 22:11:00
                            stageId:quitbattlefield
                            stageName:退出战场
                            detail:greatwall

从上面一系列日志,我们可以发现,玩家马克吐温在加入公会圣光兄弟会后,被卷入了一场公会战争,他在战场上被敌人杀死,随后使用收费道具复仇杀死对方。

 

5.16 服务端异常日志(10011)

因为种种原因发生异常时,开发人员可以记录一条异常日志,如果客户端日志程序还能正常运行,该条日志将被发送到统计后台供技术人员和运营人员分析崩溃原因,如果客户端日志程序的日志发送功能已经无法正常运行,该日志有可能被存入客户端本的缓存文件中,在用户下次启动游戏时发送到统计接口


                                    LogId            

日志名称                

字段名                

                 

字段说明                

10011

异常日志

code

String

异常标识

message

String

异常概要信息

detail

String

异常详细信息

日志格式示例:
               

该条日志记录了一次连接超时

5.17 自定义日志(11000)

由于游戏行业的产品类型丰富,各种新的玩法和子系统层出不穷,用固定格式固定字段的日志无法满足不同产品的日志记录和查询需求。我们在固定格式的日志之外,提供了一个非固定格式自定义日志的发送接口,大概是调用我们的LogUtils.sendCustomLog 方法,传入一个日志类型id和一个保存日志全部字段的map即可


                     LogId            

日志名称                

字段名                

字段类型                

字段说明                

11000

自定义日志

customId

String

日志标识,仅限字母,数字,下划线

logInfo

Map<String,String>

封装日志内容的一个Map

id

String

注:自定义日志的id,现为必填项,填入11000

 

日志标识:用来唯一确定一类日志,同一类日志必须传入同一标识,标识只能由英文字母,数字,下划线构成,不允许传入特殊字符
                日志内容:key-val方式(Map<String, String>)传入,接入者必须确保所有字段都处于同一层级,同一类日志的key必须保持一致,如果有修改某一类customId对应日志的需求,理论上只能增加字段,不能删除字段。

日志格式示例:
               

该条日志记录了一次交易所物品上架

6 附录1.1货币规范

在MIS中的货币有总共十一种,货币ID是没有限定位数的纯自增值。


     货币ID            

货币名称                

货币单位                

1

人民币

2

美元

美分

3

日元

4

港币

5

英镑

便士

6

新加坡币

7

越南盾

8

台币

9

韩币

10

泰铢

萨当

11

卢布

戈比