今天主要給大家安利一個好東西,雖然基本上你用不到。
iOS打印log信息的方法有兩種:
- 使用C方法
printf
箕肃、fprintf
- 使用Foundation框架的
NSLog
我們在程序中寫入這些代碼恋博,當程序運行到這里就會在Xcode控制臺輸入對應的log叨叙。如下是一段輸出日志的示例代碼
NSLog(@"GGGG Data 數據1");
NSLog(@"GGGG Handle 處理事件3");
NSLog(@"GGGG Data 數據2");
NSLog(@"GGGG Handle 處理事件4?");
NSLog(@"GGGG ---------------");
printf("GGGG Data 數據1\n");
printf("GGGG Handle 處理事件3\n");
printf("GGGG Data 數據2\n");
printf("GGGG Handle 處理事件4\n");
printf("GGGG ---------------\n");
在Xcode中輸出的結果如下
2017-05-17 15:45:51.428974 NSLog&printf[8764:2333119] GGGG Data 數據1
2017-05-17 15:45:51.429259 NSLog&printf[8764:2333119] GGGG Handle 處理事件3
2017-05-17 15:45:51.429412 NSLog&printf[8764:2333119] GGGG Data 數據2
2017-05-17 15:45:51.429546 NSLog&printf[8764:2333119] GGGG Handle 處理事件4?
2017-05-17 15:45:51.430025 NSLog&printf[8764:2333119] GGGG ---------------
GGGG Data 數據1
GGGG Handle 處理事件3
GGGG Data 數據2
GGGG Handle 處理事件4
GGGG ---------------
當然前提是:你必須使用Xcode左上角的啟動按鈕宾添,啟動該應用程序,才能在控制臺上看到這些log柜裸。也就是說缕陕,如果沒有經過Xcode啟動,自己手動運行起來的程序疙挺,其中輸出的log在控制臺上是看不到的扛邑。
大多數情況下,通過啟動查看log這樣已經夠用了铐然,相信這個控制臺足夠用到永遠蔬崩。直到有一天,我遇到了DeepLink搀暑。沥阳。。
運行過程是怎么樣呢自点?就是在Safari里面輸入這樣的鏈接schem://home?name='GGG'&age='年芳二八'
桐罕,其中schem是app注冊的一個URL Type串,瀏覽這個URL地址將會打開你的app。
這個時候功炮,app就不是由Xcode啟動的了溅潜。而好死不死的又會有想要看看log信息的需求,以跟蹤下app業(yè)務流程薪伏,數據處理等信息滚澜。可是此時log信息在控制臺中看不到凹藁场I杈琛!眶掌!
當然挡育,想看這種非Xcode啟動的情況下的log信息,方法還是有的
-
Xcode
->Window
->Devices
->選擇要查看log的設備
->點擊底部向上的箭頭(show the device console)
- mac自帶程序
控制臺
第一種方法的結果是什么樣的呢朴爬?
一打開console即寒,該設備上所有的log信息:包括系統(tǒng)log、你的log召噩、其他三方程序log母赵,一股腦嘩啦啦的刷刷刷,真要亮瞎我的狗眼具滴。
不過好在它支持搜索凹嘲,command+F
,輸入我們app的名稱构韵,就能直接定位到app輸出的log了周蹭。
如何,在一堆垃圾log中找到我們想看的log是不是有些累了疲恢,中文也都被轉成了一堆不可描述的字符凶朗。更可怕的是,Demo中的log是一連串的显拳,實際工程中棚愤,app的log肯定是跟系統(tǒng)log、其他log混雜在一起的杂数,那就更加爽爆了宛畦。
注意:我們也可以從log中看出,
printf
輸出的信息都不見了揍移。相信你在程序中一般也不會用printf
次和。
接下來,就是重頭戲了羊精,給大家安利的一個好東西斯够,用這個來看log不知比第一種方法好幾千幾百倍囚玫。
這個工具一定是什么了不得的工具了,沒錯读规,就是那個一直被我們忽略在角落抓督,一直放在《其他》文件夾,貌似不知道有什么用也永遠不會用到的控制臺
(注意:不是終端Terminal束亏,而是控制臺)
同樣的铃在,一打開程序,選擇設備碍遍,系統(tǒng)log定铜、你的log、其他三方程序log怕敬,也是一股腦嘩啦啦的刷揣炕。好在這里刷的不是滿屏滿屏的字符,它是一行一行以表格呈現(xiàn)的东跪。
看到了吧畸陡,右上角有篩選輸入框,一行l(wèi)og太長顯示不全虽填,還可以在底部看完整log丁恭。同樣的,printf的信息也不會被輸出到控制臺斋日。
可是等等牲览,log信息中還是很亂啊。別忘了恶守,我們的篩選輸入框很強大的:
每一個篩選條件有三種屬性:字符串第献、類型、關系兔港。輸入字符串痊硕,按下
enter
,就會生成一個篩選按鈕押框,點擊下拉箭頭,就可以篩選出指定類型滿足指定關系的log了理逊。
可是設置篩選條件有些繁瑣啊橡伞,下次又想查看log信息豈不是又要來一邊?那么當你添加了新的篩選條件時晋被,有沒有看到輸入框右下方的存儲按鈕呢兑徘?
點擊存儲后,就會在下面的工具欄中生成一個選項羡洛,下次直接點這個選項就行了挂脑。
注意:存儲按鈕并不是存儲這些log信息,而是篩選框中的篩選條件。
當然了崭闲,蘋果爸爸給自己的每一個app都添加了幫助信息
你們直接看爸爸怎么說就好了肋联。