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