【发布时间】:2016-11-13 05:02:14
【问题描述】:
我正在 Xcode 8 和 Objective-C 中试用新的统一日志记录。它工作正常,但似乎 debug 和 info 类型的日志没有显示在新的 Mac 控制台上。其他日志类型(error、fault、default)均显示正确。
在 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