在開發比較大型的專案, 或是有牽涉到多執行緒的時候
公司內如果有測試QA進行時, 最可怕的問題不在於碰到了Bug, 而是碰到了Bug你卻不知道到底發生了什麼事...
總不能什麼測試都自己來測吧!!! 這次Bear要分享一個在公司開發過程中曾經使用的技巧,
也就是把App過程中的Log給記錄在檔案中的方法!
公司內如果有測試QA進行時, 最可怕的問題不在於碰到了Bug, 而是碰到了Bug你卻不知道到底發生了什麼事...
總不能什麼測試都自己來測吧!!! 這次Bear要分享一個在公司開發過程中曾經使用的技巧,
也就是把App過程中的Log給記錄在檔案中的方法!
首先Bear先建立了一個Class名為DebugLog,
這次的Class目的相當簡單, 我們希望能在程式打開define : __DEBUG__的時候
把log的訊息給存進一個txt檔案內, 不過希望在App Release到App Store的時候不要讓使用者看到這些訊息
那, 因為是要存取Log的訊息, 所以用法也會希望如同NSLog一樣, 是一個不定參數 (或是稱為 可變參數)的輸入方式
那來看看這個Class要怎麼使用吧!!
這次的Class目的相當簡單, 我們希望能在程式打開define : __DEBUG__的時候
把log的訊息給存進一個txt檔案內, 不過希望在App Release到App Store的時候不要讓使用者看到這些訊息
那, 因為是要存取Log的訊息, 所以用法也會希望如同NSLog一樣, 是一個不定參數 (或是稱為 可變參數)的輸入方式
那來看看這個Class要怎麼使用吧!!
在Import進來DebugLog後, 只要在你想要加上Log的地方
使用function : BugLog().. 就能如同NSLog一樣印出在畫面上 (如上圖)
除此之外, 也能到你的App內的SandBox中的Document資料夾 (如下圖)
使用function : BugLog().. 就能如同NSLog一樣印出在畫面上 (如上圖)
除此之外, 也能到你的App內的SandBox中的Document資料夾 (如下圖)
此時你會發現你多了一個record的資料夾, 裡面也有一個txt檔案附上了年月日的時間
如果我們點開txt檔就會看到這樣的訊息
如果我們點開txt檔就會看到這樣的訊息
內容中我們把年月日, 秒分 還有Log的訊息都印上去了!
要注意我們這個Class的使用中, 只能大約記錄1000筆資料
因為每次會把檔案內的資料讀出來再記錄回去, 對於大量反覆操作的動作中, 會因為記憶體問題而發生crash
不過只要把__DEBUG__的define給關閉後就能變回一般的NSLog操作了!
針對這個class還有一些優化的方式, 例如一個檔案只記錄500筆數據後自動換成下一個檔案等操作方式
不過這篇僅為了Demo教學用, 就不放上這些進階技巧了!!
有需要的朋友可以到Github上下載:
https://github.com/shouian/DebugLogTrace
這篇文章對你有用嗎? 對iOS有興趣的話也能參考以下文章:
[入門系列]
1. Xcode 5 - 你的第一支Hello World iOS程式
2. Xcode 5 - UIView 與 UILabel
3. Xcode 5 - 第一顆互動按鈕 UIButton
4. Xcode 5 - 協定與委派
5. Xcode 5 - 如何建立表格 UITableView?
[中級系列]
1. OpenSource - 可拖曳的UICollectionView (DraggableCollectionView)
[進階系列]
1. iOS 製作廣播電台
2. iOS 製作視訊串流
3. iOS 與Arduino製作藍芽聊天室
4. iOS 製作長曝光相機
5. iOS CoreblueTooth FrameWork
喜歡這篇文章嗎? 趕快加入Takobear粉絲團吧!
要注意我們這個Class的使用中, 只能大約記錄1000筆資料
因為每次會把檔案內的資料讀出來再記錄回去, 對於大量反覆操作的動作中, 會因為記憶體問題而發生crash
不過只要把__DEBUG__的define給關閉後就能變回一般的NSLog操作了!
針對這個class還有一些優化的方式, 例如一個檔案只記錄500筆數據後自動換成下一個檔案等操作方式
不過這篇僅為了Demo教學用, 就不放上這些進階技巧了!!
有需要的朋友可以到Github上下載:
https://github.com/shouian/DebugLogTrace
這篇文章對你有用嗎? 對iOS有興趣的話也能參考以下文章:
[入門系列]
1. Xcode 5 - 你的第一支Hello World iOS程式
2. Xcode 5 - UIView 與 UILabel
3. Xcode 5 - 第一顆互動按鈕 UIButton
4. Xcode 5 - 協定與委派
5. Xcode 5 - 如何建立表格 UITableView?
[中級系列]
1. OpenSource - 可拖曳的UICollectionView (DraggableCollectionView)
[進階系列]
1. iOS 製作廣播電台
2. iOS 製作視訊串流
3. iOS 與Arduino製作藍芽聊天室
4. iOS 製作長曝光相機
5. iOS CoreblueTooth FrameWork
喜歡這篇文章嗎? 趕快加入Takobear粉絲團吧!