智能硬件設備日誌服務架構設計

日誌服務功能主要分爲兩大模塊:logcat日誌和埋點日誌。

日誌類型

定義

特點

作用

logcat日誌

每個app通過Log打印的日誌

全,但是關鍵信息不明顯

用於分析定位現網問題

埋點日誌

格式化的日誌

格式規整/信息突出/可配合管理平臺進行統計

1. 供產品運營分析用戶數據

2. 定位現網問題

 

一、需求

logcat_reqirements

maidian_requirement

 

整體結構

整體框架

 

logcat日誌 生成及上傳場景

logcat文件生成及上傳場景

時序圖

logcat日誌時序圖

埋點日誌

埋點日誌時序圖

 

 

難點:

1. 日誌進程管理

日誌進程管理

在進程中執行的指令: logcat –v time | egrep –i “abcd”

 

2. 阻塞式讀取日誌進程中的輸出日誌

buffRead = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = buffRead.readLine()) != null) {
}

這裏緩存採用StringBuffer,它是線程安全的。

 

3. 日誌輸出到文件及加密過程

每讀一行日誌會拼接到緩存中,當達到一定數量後寫入文件。

也可以是時間輪詢觸發寫入文件。(會有多線程問題)

寫文件採用: FileOutputStream

壓縮及加密: 採用先gZip壓縮,然後再進行異或加密,祕鑰存儲在代碼中可能存在一定的風險。

 

4. logcat文件上傳

由於單個文件都是小文件,不需要支持斷點續傳,所以只是簡單的通過一個接口請求將文件put到雲端。

 

5. 埋點日誌存儲及上傳管理

採用單獨的埋點sdk進行管理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章