2016-11-23 59 views
3

iOS 10和macOS Sierra中新日誌記錄系統的Logging Apple reference明確表示不包含行號和源文件信息,因爲它會自動捕獲。如何從os_log()中找到源文件和行號

請勿在消息中包含符號信息或源文件行號。系統自動捕獲這些信息。

但是我還沒有能夠找到任何方式來查看這些可能捕獲的值。在控制檯應用程序中,我可以看到子系統,類別,進程ID等,但沒有任何關於文件和行。

而命令行工具似乎缺少顯示此信息的任何選項(除非我錯過了某些內容)。

任何人都知道了嗎?

回答

3

雖然在終端中可以看到C/C++中的文件和行號,但我不認爲它在Swift中可用。請參閱蘋果論壇here

我試過類似的論壇裏面有什麼東西是通過創建一個簡單的命令行工具Xcode項目:

import Foundation 
import os.log 

os_log("rrrr") 

,並輸入端子以下內容:log stream --source --predicate 'eventMessage contains "rrrr"',我得到這個:

Timestamp      Thread  Type  Activity    PID  
2017-02-18 17:58:46.x5067d Default  0x0     5637 <testLogSwift`_swift_os_log> rrrr 

相反,我在C/C++版本,這顯示了文件和行號有:

Timestamp      Thread  Type  Activity    PID  
2017-02-18 17:55:05.056103+0700 0x4aa01 Default  0x0     5218 <testLogging`main (main.cpp:13)> qqq 
+0

有趣!我也試圖從Swift中使用它。沒有想過檢查它對Cs的行爲是否不同。 – sobri

+1

我向蘋果提交了錯誤報告,他們已經修復了這個錯誤。應該在不久的將來出現:-) – HuaTham