關于使用os_log

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打開了模擬器,模擬器也會顯示在上面,點擊手機的名字,就可以看到很多打印的日志,可以通過篩選,查看想要查看的進程的日志信息。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 3,205評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,588評論 19 139
  • 前言 最先接觸編程的知識是在大學里面,大學里面學了一些基礎的知識,c語言,java語言,單片機的匯編語言等;大學畢...
    oceanfive閱讀 3,395評論 0 7
  • 前言 在Android開發(fā)中,消息推送功能的使用非常常見。 推送消息截圖 為了降低開發(fā)成本,使用第三方推送是現(xiàn)今較...
    BillyLu1994閱讀 4,639評論 0 2
  • 點星的余暉落在窗前 寂靜地 低調地 折射在我的書頁 散了香 隔著氤氳的茫茫 我看到了我的影 透著你的眸 月兒你在低...
    悲傷的魅力閱讀 208評論 0 0

友情鏈接更多精彩內容