iOS中 加強日誌輸出 開發技術總結

2021-07-09 22:54:28 字數 1799 閱讀 2580

對於那些做後端開發的工程師來說,看log解bug應該是理所當然的事,但我接觸到的移動應用開發的工程師裡面,很多人並沒有這個意識,查bug時總是一遍一遍的試圖重現,試圖除錯,特別是對一些不太容易重現的bug經常焦頭爛額。而且ios的異常機制比較複雜,objective-c的語言駕馭也需要一定的功力,做出來的應用有時候挺容易產生崩潰閃退。一遍一遍的用xcode取應用崩潰記錄、解析符號,通常不勝其煩,有時還對著解析出來的呼叫棧發呆,因為程式當時的內部狀態常常難以看明白,只能去猜測。

對於真機,日誌沒法儲存,不好分析問題。所以有必要將日誌儲存到應用的docunment目錄下,並設定成共享檔案,這樣才能取出分析。

匯入第三方:afnetworkinng

最終效果:

小技巧:ios - 將控制台log日誌轉為輸出為文字檔案

?12 3

4 56 7

8 910 11

12 13

14 15

16 - (void)redirectnslogtodocumentfolder

nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);

nsstring *documentdirectory = [paths objectatindex:0];

nsstring *filename = [nsstring stringwithformat:@mrnslog.txt];// 注意不是nsdata!

// 先刪除已經存在的檔案

nsfilemanager *defaultmanager = [nsfilemanager defaultmanager];

[defaultmanager removeitematpath:logfilepath error:nil];

// 將log輸入到檔案

freopen([logfilepath cstringusingencoding:nsasciistringencoding], a+, stdout);

freopen([logfilepath cstringusingencoding:nsasciistringencoding], a+, stderr);

2.在didfinishlaunchingwithoptions中呼叫 : 

[self redirectnslogtodocumentfolder];

最後配置共享資料夾:

iOS中 加強日誌輸出 開發技術總結

對於那些做後端開發的工程師來說,看log解bug應該是理所當然的事,但我接觸到的移動應用開發的工程師裡面,很多人並沒有這個意識,查bug時總是一遍一遍的試圖重現,試圖除錯,特別是對一些不太容易重現的bug經常焦頭爛額。而且ios的異常機制比較複雜,objective c的語言駕馭也需要一定的功力,做...

ios開發中,加入Google Analytics

直接挑乾的來!標頭檔案需要加入的東西 add header file import gai.h import gaifields.h import gaidictionarybuilder.h add member id m tracker mm檔案需要加入的東西 void viewdidload ...

IOS 除錯日誌輸出

void logmessagebyuuid nsstring uuid 這樣就會吧debug寫入乙個檔案,在測試過程中出現bug 把手機中得日誌倒出來就可以檢視日誌了。這樣就可以除錯了。對於stderr 檔案的解釋來自 為某個外部附件開發應用程式的情況下,開發者無法用 xcode 進行除錯或者用 g...