在我們實(shí)際開(kāi)發(fā)中經(jīng)常要配合測(cè)試進(jìn)行debug牵辣,在真機(jī)上測(cè)試的時(shí)候很難看到控制臺(tái)的輸出日志。真機(jī)連接在電腦上進(jìn)行測(cè)試的時(shí)候還好,但是有些功能測(cè)試的時(shí)候可能需要程序殺死重新打開(kāi)涨缚。比如在測(cè)試推送功能的時(shí)候,需要測(cè)試程序在殺死的情況下收到推送怎么處理策治。這個(gè)時(shí)候很難看到推送內(nèi)容是什么脓魏,要想根據(jù)推送內(nèi)容寫(xiě)具體的處理邏輯就很不方便了。比如程序莫名其妙地閃退了通惫,你想定位bug卻很難看到奔潰日志茂翔?比如想查看真機(jī)上沙盒中保存的某個(gè)值?再比如測(cè)試人員在測(cè)試過(guò)程中想查看當(dāng)前加載的網(wǎng)頁(yè)的完整鏈接(包括自己拼接的參數(shù)等等)履腋???珊燎。這個(gè)時(shí)候是不是很想來(lái)一個(gè)不影響程序的正常運(yùn)行又可以實(shí)時(shí)查看打印日志的輪子???
這個(gè)小工具實(shí)現(xiàn)了以下功能:
- 每次程序啟動(dòng)就新建一個(gè)以當(dāng)前時(shí)間命名的日志文件遵湖。
- 自定義打印日志的方法悔政,調(diào)用后將把日志記錄于文件中。
- 重定向NSLog輸出日志到文件中延旧,這樣你就不用替換到你項(xiàng)目中已有的NSLog()代碼啦谋国。
- 重定向程序奔潰日志到文件中。
- 自動(dòng)根據(jù)當(dāng)前設(shè)備信息選擇要不要記錄日志的同時(shí)把日志打印到控制臺(tái)迁沫。
- 方便查看當(dāng)前沙盒中保存的鍵值對(duì)芦瘾。
看完介紹是不是心情有點(diǎn)小激動(dòng)甚至想“來(lái)一發(fā)”???
使用方法
- 將DebugWindow文件夾下的類引入你的項(xiàng)目集畅。
- 在程序啟動(dòng)時(shí)調(diào)用
[YLDebugWindow startDebug]
方法開(kāi)啟日志記錄近弟。 - 如果需要自定義打印日志,調(diào)用YLLog()方法挺智,你也可以根據(jù)自己實(shí)際情況修改該方法祷愉。
注意事項(xiàng)
- 建議在往沙盒中存數(shù)據(jù)的時(shí)候?qū)⑺衚ey都帶上特定前綴,比如我這里是"kYL"開(kāi)頭的,這樣在獲取沙盒中鍵值對(duì)的時(shí)候方便只看自己保存的鍵值對(duì)二鳄。
- 默認(rèn)在模擬器上和真機(jī)連接在電腦上的時(shí)候是不把NSLog輸出和異常輸出日志記錄到文件中的迫摔,如果需要在模擬器上看效果,可以修改YLLogTool的
needRedirect
方法泥从。
目前存在的問(wèn)題以及待實(shí)現(xiàn)功能
- 問(wèn)題:重定向程序原有的NSLog輸出日志中句占,中文顯示亂碼問(wèn)題。目前沒(méi)有找到解決辦法躯嫉,建議盡量用英文輸出纱烘。??
- 待實(shí)現(xiàn):動(dòng)態(tài)更改沙盒中保存的鍵值對(duì)來(lái)方便調(diào)試。
效果圖
參考
總結(jié)
在真機(jī)上測(cè)試的時(shí)候快速查看日志祈餐,這一直是我實(shí)際開(kāi)發(fā)中的一個(gè)需要擂啥。這個(gè)小工具是最近一周工作之余研究的結(jié)果,非常感謝網(wǎng)絡(luò)上已有的技術(shù)文章對(duì)我的幫助和啟發(fā)帆阳。如有bug或者其他建議哺壶,請(qǐng)?jiān)?a target="_blank" rel="nofollow">DebugWindow反饋給我,謝謝蜒谤。
更新記錄
---2017-05-11---
- 使用UIWebView替代QLPreviewController來(lái)預(yù)覽日志文件山宾。
- 解決中文亂碼問(wèn)題。
- 在日志文件中搜索并高亮字符串鳍徽。
- 增刪改查當(dāng)前沙盒中保存的鍵值對(duì)资锰,方便調(diào)試。