如何从os_log()中查找源文件和行号

时间:2016-11-23 06:30:45

标签: ios logging macos-sierra

iOS 10和macOS Sierra中新记录系统的Logging Apple reference明确表示不包括行号和源文件信息,因为它是自动捕获的。

  

不要在邮件中包含符号信息或源文件行号。系统会自动捕获此信息。

但是我还没有找到任何方式来查看这些所谓的捕获值。在控制台应用程序中,我可以看到子系统,类别,进程ID等,但没有关于文件和行。

命令行工具同样似乎缺少显示此信息的任何选项(除非我遗漏了某些内容)。

有人想出来了吗?

1 个答案:

答案 0 :(得分:5)

我还没有想到它在Swift中可用,尽管你可以在终端中看到C / C ++中的文件和行号。请参阅Apple论坛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.012381+0700 0x5067d    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