关于使用os_log

ios10 之前只要使用了NSLog我们就能通过Xcode-->Window-->Devices能够查看我们的应用或者别人的应用打印的日志信息,ios10以后苹果更新了日志记录系统,上面的方式现在行不通了。在ios10以后我们可以使用os_log这个新提供的api来打印我们的日志。

使用方法:


            os_log_t log = os_log_create("com.example.my-subsystem", "test")

            const char *staticString = "I am static string!";

             const char *dynamicString = [[NSString stringWithFormat:@"I am %@!", @"dynamic string"]                   cStringUsingEncoding:NSUTF8StringEncoding];

            os_log(log, "Message: %s", staticString);

            os_log(log, "Message: %s", dynamicString); //动态字符串format不添加public的情况下,根据日志系统的规则会打印出<private>

           os_log(log, "Message: %{public}s", dynamicString); //这样就可以正常的打印日志了

          // 输出

         // [test] Message: I am static string!

         // [test] Message: <private>  

        // [test] Message: I am dynamic string! 


我们的应用在之前可能有很多的地方使用了NSLog,但是我们不想一个一个的去修改我们可以这样:

#define NSLog(FORMAT, ...) os_log(OS_LOG_DEFAULT,"%{public}@", [NSString stringWithFormat:FORMAT, ##__VA_ARGS__])


查看日志的方法: 

通过usb将手机连接到Mac上,打开Mac 上的控制台应用,可以看到左上角有个设备的选项,这个里面就有连接的手机的名字,如果Xcode打开了模拟器,模拟器也会显示在上面,点击手机的名字,就可以看到很多打印的日志,可以通过筛选,查看想要查看的进程的日志信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 7,593评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,403评论 19 139
  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 8,374评论 0 7
  • 前言 在Android开发中,消息推送功能的使用非常常见。 推送消息截图 为了降低开发成本,使用第三方推送是现今较...
    BillyLu1994阅读 9,949评论 0 2
  • 点星的余晖落在窗前 寂静地 低调地 折射在我的书页 散了香 隔着氤氲的茫茫 我看到了我的影 透着你的眸 月儿你在低...
    悲伤的魅力阅读 1,287评论 0 0