【问题标题】:Xcode 8 - os_log_debug and os_log_info logs are not displayed on new Mac console (unified logging) [duplicate]Xcode 8 - os_log_debug 和 os_log_info 日志未显示在新的 Mac 控制台上(统一日志记录)[重复]
【发布时间】:2016-11-13 05:02:14
【问题描述】:

我正在 Xcode 8 和 Objective-C 中试用新的统一日志记录。它工作正常,但似乎 debuginfo 类型的日志没有显示在新的 Mac 控制台上。其他日志类型(errorfaultdefault)均显示正确。

在 Xcode 8 上我有:

os_log_t logObject = os_log_create("com.myapps", "testing log");
os_log(logObject, "Default log message."); // Captured and shown correctly
os_log_info(logObject, "Info log message."); // Not shown on Console app
os_log_debug(logObject, "Debug log message.");  // Not shown on Console app
os_log_error(logObject, "Error log message.");  // Captured and shown correctly
os_log_fault(logObject, "Fault log message.");  // Captured and shown correctly

在我发出的终端上:

sudo log config --mode "persist:debug,level:debug" --subsystem com.myapps

这就是我得到的:

知道我错过了什么吗?

注意:我的问题在@algal 之前至少 7 个月被问过,怎么会被认为是重复的?

【问题讨论】:

  • 你真的需要配置日志系统(通过sudo log config)吗?要观察日志流,这应该可以工作:log stream --level debug --predicate 'subsystem == "com.myapps"'.
  • @Vlad:根据 Apple 文档:“只有在通过日志命令行工具或自定义日志记录配置文件显式启用调试日志记录时,才会捕获调试级别消息”。通过 de log stream 命令,我确实看到了所有日志类型,但不是通过新的 Mac 控制台。
  • 这个问题不是重复的(另一个问题是关于iOS的,这个问题是关于macOS的)。在调试附加到 Xcode 的 macOS 应用程序时,对所谓的重复问题(使用 Console.app 中的菜单项)的答案不起作用。
  • 如果有人从 Google 来到这里,我的答案是:我找不到在 Console.app 中启用调试消息的方法。查看它们的唯一方法是使用log stream --level=debug --process $(pgrep my-app-name)

标签: objective-c xcode logging terminal console


【解决方案1】:

信息和调试级别必须通过命令行或安装日志配置文件手动启用。有关详细信息,请参阅Logging documentation在调试时自定义日志记录行为部分。

【讨论】:

  • 这确实是我所做的:sudo log config --mode "persist:debug,level:debug" --subsystem com.myapps 如我的问题所述。但它不起作用。
猜你喜欢
  • 2017-04-29
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
相关资源
最近更新 更多