关于使用os_log

2018-07-13  本文已影响0人  Jack专注

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打开了模拟器,模拟器也会显示在上面,点击手机的名字,就可以看到很多打印的日志,可以通过筛选,查看想要查看的进程的日志信息。

上一篇下一篇

猜你喜欢

热点阅读