今天主要给大家安利一个好东西,虽然基本上你用不到。
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业务流程,数据处理等信息。可是此时log信息在控制台中看不到啊!!!
当然,想看这种非Xcode启动的情况下的log信息,方法还是有的
-
Xcode
->Window
->Devices
->选择要查看log的设备
->点击底部向上的箭头(show the device console)
- mac自带程序
控制台
第一种方法的结果是什么样的呢?
一打开console,该设备上所有的log信息:包括系统log、你的log、其他三方程序log,一股脑哗啦啦的刷刷刷,真要亮瞎我的狗眼。
不过好在它支持搜索,command+F
,输入我们app的名称,就能直接定位到app输出的log了。
如何,在一堆垃圾log中找到我们想看的log是不是有些累了,中文也都被转成了一堆不可描述的字符。更可怕的是,Demo中的log是一连串的,实际工程中,app的log肯定是跟系统log、其他log混杂在一起的,那就更加爽爆了。
注意:我们也可以从log中看出,
printf
输出的信息都不见了。相信你在程序中一般也不会用printf
。
接下来,就是重头戏了,给大家安利的一个好东西,用这个来看log不知比第一种方法好几千几百倍。
这个工具一定是什么了不得的工具了,没错,就是那个一直被我们忽略在角落,一直放在《其他》文件夹,貌似不知道有什么用也永远不会用到的控制台
(注意:不是终端Terminal,而是控制台)
同样的,一打开程序,选择设备,系统log、你的log、其他三方程序log,也是一股脑哗啦啦的刷。好在这里刷的不是满屏满屏的字符,它是一行一行以表格呈现的。
控制台
看到了吧,右上角有筛选输入框,一行log太长显示不全,还可以在底部看完整log。同样的,printf的信息也不会被输出到控制台。
可是等等,log信息中还是很乱啊。别忘了,我们的筛选输入框很强大的:
筛选
每一个筛选条件有三种属性:字符串、类型、关系。输入字符串,按下
enter
,就会生成一个筛选按钮,点击下拉箭头,就可以筛选出指定类型满足指定关系的log了。
可是设置筛选条件有些繁琐啊,下次又想查看log信息岂不是又要来一边?那么当你添加了新的筛选条件时,有没有看到输入框右下方的存储按钮呢?
点击存储后,就会在下面的工具栏中生成一个选项,下次直接点这个选项就行了。
注意:存储按钮并不是存储这些log信息,而是筛选框中的筛选条件。
当然了,苹果爸爸给自己的每一个app都添加了帮助信息
控制台自带帮助
你们直接看爸爸怎么说就好了。
网友评论