iOS批量分析并統(tǒng)計(jì)Crash日志atos atosl symbolicate

原文地址
iOS批量分析并統(tǒng)計(jì)Crash日志atos atosl symbolicate

需求及可行性分析

  1. 在Linux下直接用atosl工具符號(hào)化crash日志;
  2. 在Mac下,從服務(wù)端批量拉取crash日志文件,對(duì)crash做符號(hào)化,并提取里面字段插入數(shù)據(jù)庫(kù),供統(tǒng)計(jì)展示使用。需要用腳本定時(shí)自動(dòng)化去跑。
    分析:
    針對(duì)第一種在Linux下分析,這種難度較高,atosl是多年前開(kāi)源的一個(gè)工具,現(xiàn)在已不維護(hù),經(jīng)過(guò)修改后,只能解出部分arm64日志文件,修改后的atosl,依然不能正常工作,運(yùn)行性能也不高,所以放棄;
    第二種解決方案中,Mac下對(duì)符號(hào)化支持比較好,atos或者symbolicate符號(hào)化工具,可行性較高。

使用工具

采用SYM工具,用swift編寫的mac程序.

執(zhí)行方案

采用如下流程:

Mac下符號(hào)化并統(tǒng)計(jì)圖解

在SYM程序中,已把信息提取出來(lái),并把每一行的數(shù)據(jù)以tab分割,結(jié)尾處以回車分割,插入到文件~/Documents/Crash/sql.txt,這樣文件中,每一行為數(shù)據(jù)庫(kù)中的每一條數(shù)據(jù)。

數(shù)據(jù)庫(kù)

安裝好數(shù)據(jù)庫(kù),建好數(shù)據(jù)庫(kù)名(crash),表名(oaim)。
在db.sh腳本中做從文件中讀取數(shù)據(jù),插入到數(shù)據(jù)中的操作:

mysql --host=localhost --user=youusername --password=yourpassword crash << EOF
load data local infile '~/Documents/Crash/sql.txt' into table oaim columns terminated by '\t';
# insert into oaim_st(identifier, time,title, description) values ('iidd13434','2017-09-12', 'tdfdfdfdfdfdfdfdfesttewfsdfdf');
EOF

第三行為單行插入,已注釋掉。

run script

在crash.sh中,這樣去寫:

#!/bin/bash
# 打開(kāi)SYM打包好的Mac app
open ~/Documents/soft/SYM.app
# 打開(kāi)后自動(dòng)符號(hào)化特定目錄下的crash文件,根據(jù)估算,這里寫了個(gè)40秒
sleep 40
# 40秒后,關(guān)閉app
osascript -e 'quit app "SYM"'
echo "save sql.txt finished"
# 執(zhí)行存儲(chǔ)到數(shù)據(jù)庫(kù)的腳本
. ~/test/db.sh
sleep 10
echo "load sql.txt to mysql finished!"
# 清理文件
rm -rf /Users/Shawn/Documents/Crash/sql.txt
echo "clean sql.txt" finished

原文地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容