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

Nit*_*tay 17 iphone xcode logging ios swift

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

这是日志的初始化:

var osLog : OSLog = OSLog(subsystem: "com.test.testapp", category: "native-tester")
Run Code Online (Sandbox Code Playgroud)

以下是我如何使用它:

os_log("iOS App initialized successfully!", log: osLog, type:.info)
Run Code Online (Sandbox Code Playgroud)

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

本文说您应该配置系统以使用调试日志

sudo log config --mode "level:debug" --subsystem com.test.testapp
Run Code Online (Sandbox Code Playgroud)

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

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

lea*_*nne 24

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

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

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

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

sudo log config --subsystem com.test.testapp --mode level:debug
Run Code Online (Sandbox Code Playgroud)

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

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

sudo log config --subsystem com.test.testapp --mode level:debug,persist:debug
Run Code Online (Sandbox Code Playgroud)

但是,无论任何日志设置如何,只有崩溃报告才会出现在"设备和模拟器"窗口中.


sam*_*ize 8

另一个缺陷:如果你已经设置OS_ACTIVITY_MODEdisable在你的计划,那么你将不会看到任何日志在控制台您的应用程序。

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


Tom*_*żak 6

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

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

这里也是相当不错的WWDC:https : //developer.apple.com/videos/play/wwdc2016/721/


JAH*_*lia 5

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

在此处输入图片说明