Mars-日志模塊xlog for React-Native (iOS)(1)

本文主要介紹Mars-xlog的使用過程(iOS)绊汹,與react-native相關(guān)部分,則參考了react-native-xlog垦缅,暫不做詳細(xì)介紹

1. 生成mars.framework

  • 首先安裝 cmakeXCode 以及 python2.7 某残,macOS系統(tǒng)默認(rèn)安裝了python译荞,只要確定版本號(hào)在2.7.*即可,cmake可以在網(wǎng)上搜安裝教程忿晕。

  • Mars下載最新的代碼装诡,master分支。

  • 該項(xiàng)目的目錄分支如下圖践盼,你需要cd到mars文件夾下鸦采,即:mars/mars目錄


    514A8B6C-AEF8-477A-9DE9-F4F3733D9E6E.png
  • 在mars/mars目錄下面,跑官方提供的腳本咕幻,腳本文件都在這個(gè)目錄下面都有渔伯,使用下面的命令行,會(huì)出現(xiàn)一個(gè)菜單選項(xiàng)谅河,看個(gè)人需要咱旱,我選擇的是 2,運(yùn)行等待結(jié)束绷耍,會(huì)輸出一個(gè)mars.framework吐限,在命令行結(jié)束時(shí)會(huì)提供該包的輸出路徑 cmake_build/iOS/Darwin.out/mars.framework

python build_ios.py 

2. 在項(xiàng)目中,添加配置資源

  • mars.framework 直接拖拽到你的項(xiàng)目中褂始,因?yàn)槲抑皇褂昧藊log功能诸典,所有些文件是不需要加到項(xiàng)目中的,否則你在運(yùn)行時(shí)會(huì)報(bào)錯(cuò) duplicate **----什么什么的 崎苗,我只添加了 LogUI 之類的4個(gè)文件狐粱,還有需要link的一些libraries,請(qǐng)看圖中文字說明胆数。

    E90163FC-CE8A-4CED-8A70-1FAD38F2D673.png

  • 保證你的項(xiàng)目build時(shí)能夠success肌蜻,然后開始使用

3.xlog使用(具體的可以去官方文檔查看,這邊就簡單復(fù)制一些主要的代碼)

  • 推薦在 main.mm 的 main 函數(shù)里初始化:

NSString* logPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingString:@"/log"];
        
// set do not backup for logpath
const char* attrName = "com.apple.MobileBackup";
u_int8_t attrValue = 1;
setxattr([logPath UTF8String], attrName, &attrValue, sizeof(attrValue), 0, 0);
        
// init xlog
#if DEBUG
xlogger_SetLevel(kLevelDebug);
appender_set_console_log(true);
#else
xlogger_SetLevel(kLevelInfo);
appender_set_console_log(false);
#endif
appender_open(kAppednerAsync, [logPath UTF8String], "Test");
  • 在 applicationWillTerminate 函數(shù)中反初始化:
appender_close();
  • 需要注意:
    保存 log 的目錄請(qǐng)使用單獨(dú)的目錄必尼,不要存放任何其他文件防止被 xlog 自動(dòng)清理功能誤刪蒋搜。
    請(qǐng)把 log 目錄設(shè)上不備份的標(biāo)識(shí)。
    debug 版本下建議把控制臺(tái)日志打開判莉,日志級(jí)別設(shè)為 Debug, release 版本建議把控制臺(tái)日志關(guān)閉豆挽,日志級(jí)別使用 Info.
    直接include xlog頭文件的 oc 文件名后綴一定要是 .mm 不要使用 .m

4.我遇到的問題

  • 需求,把日志文件上傳到服務(wù)器券盅,在 RN 頁面上帮哈,一直紅屏報(bào)錯(cuò),說沒有權(quán)限操作document文件夾下面的文件锰镀,最后在終端敲了下面一段命令行才好娘侍,log 是我在document文件夾下創(chuàng)建的下級(jí)目錄咖刃,下面的命令行要cd 到document路徑下
sudo chmod -R 777 log/
ls -l log

****未完待續(xù)****

2019-05-13 接上文

1.日志解壓問題

官網(wǎng)明確指出,如果不想使用加密模塊或者環(huán)境配置不成功私蕾,public key 參數(shù)設(shè)置為空字符即可僵缺,解密腳本使用 [decode_mars_nocrypt_log_file.py](https://github.com/Tencent/mars/blob/master/mars/log/crypt/decode_mars_nocrypt_log_file.py), 但這樣日志會(huì)只壓縮不加密。
即調(diào)用 appender_open 方法時(shí)踩叭,最后一個(gè)參數(shù) _pub_key 傳入空字符:

 appender_open(mode, [logPath UTF8String], [nameprefix UTF8String], "");

官網(wǎng)文檔中給的 appender_open 方法多了一個(gè)參數(shù)磕潮,好像是緩存天數(shù)的設(shè)置,但是我生成的framework包中容贝,其方法是這樣的:

void appender_open(TAppenderMode _mode, const char* _dir, const char* _nameprefix, const char* _pub_key);

所以在調(diào)用 appender_open 時(shí)自脯,最好看一下你生成的framework包中的方法具體是要傳那些參數(shù)。
解壓部分斤富,前提膏潮,保證解壓腳本,和需要被解壓的日志文件满力,在同一目錄下焕参,解壓腳本位置:mars/mars/log/crypt/decode_mars_nocrypt_log_file.py (加密解壓腳本同路徑下,Test_20190426.xlog是你生成的日志文件油额,可以在控制臺(tái)的log中找到logPath叠纷,然后定位文件)

  • 解壓不加密日志
python decode_mars_nocrypt_log_file.py Test_20190426.xlog
  • 解壓加密日志
python decode_mars_crypt_log_file.py Test_20190426.xlog

2.對(duì)單條日志格式進(jìn)行修改,和bitcode問題

Mars-日志模塊xlog for React-Native (iOS)(2)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末潦嘶,一起剝皮案震驚了整個(gè)濱河市涩嚣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掂僵,老刑警劉巖航厚,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異锰蓬,居然都是意外死亡幔睬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門芹扭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來麻顶,“玉大人,你說我怎么就攤上這事冯勉〕喊觯” “怎么了摹芙?”我有些...
    開封第一講書人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵灼狰,是天一觀的道長。 經(jīng)常有香客問我浮禾,道長交胚,這世上最難降的妖魔是什么份汗? 我笑而不...
    開封第一講書人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮蝴簇,結(jié)果婚禮上杯活,老公的妹妹穿的比我還像新娘。我一直安慰自己熬词,他們只是感情好旁钧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著互拾,像睡著了一般歪今。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颜矿,一...
    開封第一講書人閱讀 52,196評(píng)論 1 308
  • 那天寄猩,我揣著相機(jī)與錄音,去河邊找鬼骑疆。 笑死田篇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的箍铭。 我是一名探鬼主播泊柬,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼坡疼!你這毒婦竟也來了彬呻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤柄瑰,失蹤者是張志新(化名)和其女友劉穎闸氮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體教沾,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蒲跨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了授翻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片或悲。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖堪唐,靈堂內(nèi)的尸體忽然破棺而出巡语,到底是詐尸還是另有隱情,我是刑警寧澤淮菠,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布男公,位于F島的核電站,受9級(jí)特大地震影響合陵,放射性物質(zhì)發(fā)生泄漏枢赔。R本人自食惡果不足惜澄阳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望踏拜。 院中可真熱鬧碎赢,春花似錦、人聲如沸速梗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姻锁。三九已至峦嗤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屋摔,已是汗流浹背烁设。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钓试,地道東北人装黑。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像弓熏,于是被迫代替她去往敵國和親恋谭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

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

  • 一挽鞠、業(yè)務(wù)背景 用戶使用客戶端應(yīng)用過程中疚颊,會(huì)遇到各種bug, 包括奔潰信认、數(shù)據(jù)顯示錯(cuò)誤材义、交互出現(xiàn)問題等等,雖然APP已...
    Jonrencxr閱讀 10,894評(píng)論 3 6
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí)嫁赏,會(huì)觸發(fā)此異常其掂。 O...
    我想起個(gè)好名字閱讀 5,334評(píng)論 0 9
  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,867評(píng)論 0 5
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,701評(píng)論 0 3
  • 童庫湯陰店閱讀 265評(píng)論 0 1