2016-12-14 75 views
3

用於日誌記錄的現代API在終端中很容易配置。然而,Xcode似乎輸出所有級別,包括INFO和DEBUG,這是非常煩人的。因爲大多數時候你只想看到os_log_errorNSLog又名「出了問題」,「這很重要」。如何在Xcode控制檯中禁用os_log_info和os_log_debug消息?

那麼有沒有什麼方法可以在Xcode控制檯中只顯示特定的級別?

os_log_info(OS_LOG_DEFAULT, "Info"); 
os_log_debug(OS_LOG_DEFAULT, "Debug"); 
os_log_error(OS_LOG_DEFAULT, "Error"); 
os_log_fault(OS_LOG_DEFAULT, "Fault"); 
os_log(OS_LOG_DEFAULT, "Default"); 
NSLog(@"NSLog"); 

電流輸出:

2016-12-14 15:37:00.170807 Test[5681:2205834] Info 
2016-12-14 15:37:00.170830 Test[5681:2205834] Debug 
2016-12-14 15:37:00.170835 Test[5681:2205834] Error 
2016-12-14 15:37:00.170839 Test[5681:2205834] Fault 
2016-12-14 15:37:00.170860 Test[5681:2205834] Default 
2016-12-14 15:37:00.170869 Test[5681:2205834] NSLog 

首選的輸出:

2016-12-14 15:37:00.170835 Test[5681:2205834] Error 
2016-12-14 15:37:00.170839 Test[5681:2205834] Fault 
2016-12-14 15:37:00.170860 Test[5681:2205834] Default 
2016-12-14 15:37:00.170869 Test[5681:2205834] NSLog 
+0

試試這個OS_ACTIVITY_MODE =禁用 –

+0

這將隱藏除NSLog之外的所有消息,這與我想要的完全不同。 – Stream

回答

4

我已經使用了DTS和來自蘋果電腦的工程師得到了答案:

新的統一日誌記錄系統是一個相對較新的加法,唉,Xcode還沒有注意到和它在一起。如果您希望看到未來版本的Xcode支持日誌過濾,我鼓勵您提交描述您需求的增強請求。

所以,請複製rdar://28288063,更請來越好。謝謝!


更新:正如下面馬克斯指出,你可以修改的知名度自定義日誌:

os_log_t custom = os_log_create("com.acme.demo", "custom"); 
os_log_info(custom, "Info"); 
os_log_debug(custom, "Debug"); 
os_log_error(custom, "Error"); 
os_log_fault(custom, "Fault"); 
os_log(custom, "Default"); 

以下終端命令將抑制「信息」和「調試」字符串Xcode

sudo log config --mode "level:default" --subsystem "com.acme.demo" 

重置sy幹默認:

sudo log config -reset --subsystem "com.acme.demo" 

要查看當前狀態:

sudo log config --subsystem "com.acme.demo" 
2

可以在終端切換調試級:

$ sudo log config --mode "level:debug" --subsystem com.your_company.your_subsystem_name 

要查看當前等級:

$ sudo log config --status --subsystem com.your_company.your_subsystem_name 
Mode for 'com.your_company.your_subsystem_name' DEBUG 

欲瞭解更多信息,請參閱Apple Documentation

相關問題