在设备控制台中查看os_log消息

时间:2017-10-10 06:38:53

标签: ios swift iphone xcode logging

我试图通过统一记录(os_log)从我的应用程序中退出一些

这里是日志的初始化:

var osLog : OSLog = OSLog(subsystem: "com.test.testapp", category: "native-tester")

以下是我如何使用它:

os_log("iOS App initialized successfully!", log: osLog, type:.info)

正常调试应用程序时,日志会在控制台输出上正确显示,但当我查看设备控制台时(显示在"设备和模拟器"窗口中)我看不到它们一点都不。

This article表示您应该使用

配置系统以启用调试日志
sudo log config --mode "level:debug" --subsystem com.test.testapp

但这似乎并没有什么不同。我猜它是因为我配置mac来查看日志,而不是iPad。

如何在设备控制台中查看os_log中的ipad / iphone日志?

6 个答案:

答案 0 :(得分:16)

"设备和模拟器"窗口仅显示崩溃报告。使用控制台应用程序或终端,通过log --stream命令查看实时日志输出。

要通过控制台应用程序查看设备的实时日志消息,无论是从Xcode运行还是直接从设备运行:

  • 打开Console.app。
  • 点击左侧面板中"设备"下的设备名称。
  • 从菜单中选择操作,然后选择包含信息消息。如果您还使用.debug级别消息,请确保同时选择包含调试消息。 (如果未选择这些项目,控制台仅会显示.default.fault.error级别的消息。)

如果您仍然看不到消息,请尝试输入此终端命令以配置应用的日志记录级别:

sudo log config --subsystem com.test.testapp --mode level:debug

这将打开子系统" com.test.testapp"的.debug级别日志记录。 (包括.info.default条消息)。

如果要保留消息,而不是默认的仅内存,请同时打开三个级别的持久性,如下所示:

sudo log config --subsystem com.test.testapp --mode level:debug,persist:debug

尽管有任何日志设置,但只有崩溃报告才会出现在"设备和模拟器"窗口。

答案 1 :(得分:5)

日志类型.debug和.info默认仅限内存(未保存在磁盘上),因此在设备控制台上不可见。

详细信息: https://developer.apple.com/documentation/os/logging?language=objc

这里也是非常好的WWDC: https://developer.apple.com/videos/play/wwdc2016/721/

答案 2 :(得分:4)

另一个陷阱:如果您在方案中将OS_ACTIVITY_MODE设置为disable,则在控制台中将看不到应用程序的任何日志。

您必须删除或取消选中该参数。

答案 3 :(得分:4)

在控制台应用程序中,有两个选项可以包含/隐藏调试和信息消息:

enter image description here

答案 4 :(得分:1)

以下截图可能有助于参考- enter image description here

enter image description here

答案 5 :(得分:-1)

将应用发布到应用商店后,我的os_log丢失了。我猜我在构建要发布的应用程序时,调试选项已关闭。

要启用重新登录...,请转到产品>方案>编辑方案>运行调试...,然后选中调试可执行文件。