APP系统报错日志反馈机制设计

APP日志调取与服务器的交互设计

APP系统报错日志反馈机制设计_第1张图片

APP日志调取接口设计

接口约定

接口返回说明

参数 参数类型 说明
code Integer 含义类似http协议返回码,200代表成功
message String 返回消息,如果code为异常,则返回消息是异常信息
data Object 数据对象,json对象

失败示例数据

{
    code:500,
    message:"系统繁忙,请稍后再试",
    data:{}
}

备注
一个用户可以上传多个日志文件,后台需要考虑如何存储一个用户的多个日志文件。

获取APP日志配置接口

接口地址

http://api.dinghuo123.com/v2/applog/config.json

接口方法

GET

参数说明

参数 参数类型 是否必须 说明
access_token String 访问令牌

返回data数据说明

参数 参数类型 说明
id Long 配置的唯一标识
enableUpload Boolean true代表上传,false代表不上传
networkType Integer 网络类型,1代表wifi,2代表2G/3G/4G,3代表1与2的集合(即任何网络类型),当enableUpload为true时起效
networkTypeName String 网络类型名字,方便理解与调试,见networkType与networkTypeName对应表
scope Integer 上传范围,当enableUpload为true时起效,1代表全部,2代表指定日期
startDate String 开始日期,当scope为2时起效,格式为yyyy-MM-dd,
endDate String 结束日期,,当scope为2时起效,格式为yyyy-MM-dd,不能在startDate之前,如果startDate与endDate值一样,则指上传那一天的日志记录

networkType与networkTypeName对应表

networkType networkTypeName
1 WIFI
2 2G/3G/4G
3 ALL

成功示例数据

{
    code:200,
    message:"获取APP日志配置成功",
    data:{
        id:1001,
        enableUpload:true,
        networkType:1,
        networkTypeName:"WIFI",
        scope:2,
        startDate:"2016-04-12",
        endDate:"2016-04-13"
    }
}

上传日志文件接口

接口地址

http://api.dinghuo123.com/v2/applog/upload.json

接口方法

POST

参数说明

参数 参数类型 是否必须 说明
access_token String 访问令牌
file Binary 日志文件二进制流

返回data数据说明

参数 参数类型 说明
fileName String 文件名,返回这个名字,方便对接口进行调试,方便技术人员从后台查找日志

成功示例数据

{
    code:200,
    message:"上传日志文件成功",
    data:{
        fileName:"2016-04-13.log"
    }
}

更新日志配置接口

接口地址

http://api.dinghuo123.com/v2/applog/config_update.json

接口方法

POST

参数说明

参数 参数类型 是否必须 说明
access_token String 访问令牌
enableUpload Boolean 是否上传

返回data数据说明
与获取APP日志配置接口返回的data数据结构一致。

成功示例数据

{
    code:200,
    message:"更新日志配置成功",
    data:{
        id:1001,
        enableUpload:false,
        networkType:1,
        networkTypeName:"WIFI",
        scope:2,
        startDate:"2016-04-12",
        endDate:"2016-04-13"
    }
}

APP操作日志记录设计

APP系统报错日志反馈机制设计_第2张图片

APP上传日志流程设计

APP系统报错日志反馈机制设计_第3张图片

日志位置

日志存放的路径:/SD卡根目录/ydh/log/用户名/日志文件名称.log

元数据 定义
SD卡根目录 Android是SD卡根目录,iOS是应用的根目录
用户名 用户的账户名称
日志文件名称 日期字符串,格式为:yyyy-MM-dd。一个日志文件对应一个用户使用手机应用一天的情况。上传的时候需要在文件名前面添加平台前缀,如果是Android平台,则添加前缀”Android_”,如果是iOS平台,则添加前缀”iOS_”

示例

用户test2016年4月12日的操作日志文件为:/mnt/ydh/log/test/2016-04-12.log

日志内容格式

用户操作日志内容格式

元数据 定义
时间 格式为yyyy-MM-dd HH:mm:ss
模块 Commodity(商品)、Order(订单)、User(用户)、Authority(权限)
事件 操作事件,有相关的定义
日志类型 ERROR(错误)、INFO(信息)
事件生命周期 如START(开始),END(结束)
错误信息 如果类型为ERROR时,必须带上错误信息
订单事件
事件 定义
立即下单 placeAnOrder
用户事件
事件 定义
登录 login
示例

开始如:2016-04-12 15:46:32 Order placeAnOrder INFO START
结束成功如:2016-04-12 15:46:32 Order placeAnOrder INFO END
结束错误如:2016-04-12 15:46:32 Order placeAnOrder ERROR END {code:500,msg:”系统繁忙,请稍后再试”}

接口调用日志内容格式

元数据 定义
时间 格式为yyyy-MM-dd HH:mm:ss
方法 POST、GET、PUT、DELETE
地址 完整的url,有参数则带上参数
返回码 如200,404
内容类型 HTTP头字段Content-Type,如application/x-www-form-urlencoded
输入参数 当方法是POST时,以body形式传输的参数
返回内容 接口调用返回的以body形式传输的内容
示例

如:2016-04-12 15:46:32 POST https://api.dinghuo123.com/oauth2/token 200 application/x-www-form-urlencoded password=654321&scope=basic&client_secret=3sfX3HJX484gXY&userName=chase001&client_id=2124571&grant_type=client_credentials {“code”:525,”message”:”账号所属的服务已经过期”,”data”:”“}

一般一个操作对应多个接口调用,所以一个操作的完整的示例如:
2016-04-12 15:46:32 User login INFO START
2016-04-12 15:46:33 POST https://api.dinghuo123.com/oauth2/token 200 application/x-www-form-urlencoded password=654321&scope=basic&client_secret=3sfX3HJX484gXY&userName=chase001&client_id=2124571&grant_type=client_credentials {“code”:525,”message”:”账号所属的服务已经过期”,”data”:”“}
2016-04-12 15:46:37 User login ERROR END {“code”:525,”message”:”账号所属的服务已经过期”,”data”:”“}

你可能感兴趣的:(APP系统报错日志反馈机制设计)