ios10 之前只要使用了NSLog我們就能通過Xcode-->Window-->Devices能夠查看我們的應用或者別人的應用打印的日志信息,ios10以后蘋果更新了日志記錄系統(tǒng),上面的方式現(xiàn)在行不通了。在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); //動態(tài)字符串format不添加public的情況下,根據(jù)日志系統(tǒng)的規(guī)則會打印出<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打開了模擬器,模擬器也會顯示在上面,點擊手機的名字,就可以看到很多打印的日志,可以通過篩選,查看想要查看的進程的日志信息。