iOS學習筆記40 日誌重定向

2022-07-23 22:54:25 字數 2013 閱讀 4157

我們在ios開發過程中,我們時常會使用nslog列印到控制台的日誌資訊進行**除錯,但這樣除錯的前提是連線上xcode。

如果進行真機除錯但同時又不能連線xcode的時候,就不能直接在xcode的控制台檢視輸出日誌了,但是程式還是會執行那些log的,如果要檢視這些日誌,我們就需要把輸出日誌資訊儲存到檔案中,然後進行檢視。

標準nslog的列印預設是往標準錯誤(stderr)進行列印的,我們只需要修改nslog的列印輸出路徑即可實現日誌重定向

以下是日誌重定向**:

#pragma mark - 使用者方法,將nslog的輸出資訊寫入到檔案中

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

- (void)redirectlogtodocumentfolder

didfinishlaunchingwithoptions:(nsdictionary *)launchoptions

到這裡還沒結束,因為你的log日誌資訊已經列印到了真機應用的沙盒檔案中,你還需要把它拷貝到你的mac上進行檢視,你就需要設定共享檔案配置 :

在應用程式的info.plist檔案中新增uifilesharingenabled鍵,並將鍵值設定為yes

1. 開啟檔案

file *fp = fopen(檔案路徑,開啟方式);

開啟方式: 

2. 檔案操作

char ch = fgetc(檔案指標);

作用:從檔案中讀取乙個字元

【fgetc和getc沒有區別,用法也一樣】

fputc(字元,檔案指標);

作用:寫入乙個字元到檔案

fgets(字元陣列,長度n,檔案指標);

作用:從檔案指標指向的檔案中讀取n-1個字元存到字元陣列裡,會自動在後面加\0,字元陣列用來儲存你讀取出來的字串

【遇到「\n」立即結束讀取】

fputs(字串,檔案指標);

作用:寫入乙個字串到檔案指標指向的檔案

fread(儲存資料的首位址,每塊的大小,多少塊,檔案指標);

作用:從檔案指標指向的檔案中分塊讀取(檔案指標),告訴它一次讀取多少塊(多少塊),每塊多大(第二個引數),存到哪(第乙個引數)

【它只關心具體讀的位元組數,不會關心這些自己裡面有沒有換行 】

fwrite(資料的首位址,每塊的大小,多少塊,檔案指標);

作用:將資料分塊寫入到檔案指標指向的檔案。第乙個是告訴系統,寫入什麼資料,第二個是告訴系統每塊多少位元組,第三個是告訴系統分多少塊寫入,第四個是寫入到哪個檔案

fscanf(檔案指標,格式化控制符,位址列表);

作用:格式化讀取

fprintf(檔案指標,格式化控制符,引數列表);

作用:格式化寫入

freopen(檔案路徑path, 開啟方式mode, 檔案指標fp);

作用:實現重定向,把預定義的標準流檔案定向到由path指定的檔案中。標準流檔案具體是指stdinstdoutstderr。其中stdin是標準輸入流,預設為鍵盤;stdout是標準輸出流,預設為螢幕;stderr是標準錯誤流,一般把螢幕設為預設。

3. 關閉檔案

fclose(檔案指標);

iOS學習筆記40 日誌重定向

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

iOS學習筆記40 日誌重定向

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

iOS學習筆記 日誌重定向

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