APP系統報錯日誌反饋機制設計
APP日誌調取與伺服器的互動設計
APP日誌調取介面設計
介面約定
介面返回說明
引數 | 引數型別 | 說明 |
---|---|---|
code | Integer | 含義類似http協議返回碼,200代表成功 |
message | String | 返回訊息,如果code為異常,則返回訊息是異常資訊 |
data | Object | 資料物件,json物件 |
失敗示例資料
{
code:500,
message:"系統繁忙,請稍後再試",
data:{}
}
備註
一個使用者可以上傳多個日誌檔案,後臺需要考慮如何儲存一個使用者的多個日誌檔案。
獲取APP日誌配置介面
介面地址
介面方法
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"
}
}
上傳日誌檔案介面
介面地址
介面方法
POST
引數說明
引數 | 引數型別 | 是否必須 | 說明 |
---|---|---|---|
access_token | String | 是 | 訪問令牌 |
file | Binary | 是 | 日誌檔案二進位制流 |
返回data資料說明
引數 | 引數型別 | 說明 |
---|---|---|
fileName | String | 檔名,返回這個名字,方便對介面進行除錯,方便技術人員從後臺查詢日誌 |
成功示例資料
{
code:200,
message:"上傳日誌檔案成功",
data:{
fileName:"2016-04-13.log"
}
}
更新日誌配置介面
介面地址
介面方法
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上傳日誌流程設計
日誌位置
日誌存放的路徑:/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”:”“}