ios 將Log日誌重定向輸出到檔案中儲存

2021-09-06 21:03:23 字數 1329 閱讀 7397

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

首先是日誌輸出,分為c的printf和標準的nslog輸出,printf會向標準輸出(sedout)列印,而nslog則是向標準出錯(stderr),我們需要同時讓他們都將日誌列印到乙個檔案中。

例子:freopen("xx.log","a+",stdout);

freopen("xx.log","a+",stderr);

具體做法:

// 將nslog列印資訊儲存到document目錄下的檔案中

- (void)redirectnslogtodocumentfolder

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

nsstring *documentdirectory = [paths objectatindex:0];

nsstring *filename = [nsstring stringwithformat:@"dr.log"];// 注意不是nsdata!

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

nsfilemanager *defaultmanager = [nsfilemanager defaultmanager];

[defaultmanager removeitematpath:logfilepath error:nil];

// 將log輸入到檔案

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

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

// 當真機連線mac除錯的時候把這些注釋掉,否則log只會輸入到檔案中,而不能從xcode的監視器中看到。

// 如果是真機就儲存到document目錄下的drm.log檔案中

uidevice *device = [uidevice currentdevice];

if (![[device model] isequaltostring:@"ipad simulator"]) {

// 開始儲存日誌檔案

[self redirectnslogtodocumentfolder];

最後配置共享資料夾:

就是說,一旦裝置連線上電腦,可以通過itune檢視指定應用程式的共享資料夾,將檔案拷貝到你的電腦上看。

1.2.

將Log日誌重定向輸出到檔案中儲存 iOS

對於真機,日誌沒法儲存,不好分析問題。所以有必要將日誌儲存到應用的docunment目錄下,並設定成共享檔案,這樣才能取出分析。首先是日誌輸出,分為c的printf和標準的nslog輸出,printf會向標準輸出 sedout 列印,而nslog則是向標準出錯 stderr 我們需要同時讓他們都將日...

ios 將NSLog日誌重定向輸出到檔案中儲存

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

iOS學習筆記 日誌重定向

我們在ios開發過程中,我們時常會使用nslog列印到控制台的日誌資訊進行 除錯,但這樣除錯的前提是連線上xcode。如果進行真機除錯但同時又不能連線xcode的時候,就不能直接在xcode的控制台檢視輸出日誌了,但是程式還是會執行那些log的,如果要檢視這些日誌,我們就需要把輸出日誌資訊儲存到檔案...