从 iOS 设备获取统一系统日志
Posted
技术标签:
【中文标题】从 iOS 设备获取统一系统日志【英文标题】:Getting unified system logs from an iOS device 【发布时间】:2018-11-06 21:59:31 【问题描述】:我正在尝试使用统一日志记录来记录消息并从设备中检索它们以进行检查。我用
创建了一个新的OSLog
实例
let logDebug = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "⚠️ debug")
然后我用
记录消息os_log("%@", log: logDebug, type: OSLogType.debug, String(format:message, arguments: formatArgs))
这在 Xcode 控制台中运行良好。应该可以通过
从 Xcode 设备中检索这些日志 进行系统诊断(如Apple explains here) 将 sysdiagnose 传输到 Mac,然后 使用 Console.app 或log
命令行工具检查日志(在 system_logs.logarchive
中)。
当我这样做时,我的任何日志都不会显示。没有显示具有预期子系统(捆绑 ID)的日志。
然而,如果我直接通过grep
或vim
检查system_logs.logarchive
中的日志文件,则会出现这些消息。所以它们在日志中,但出于某种原因,Console.app 和 log
都不会显示它们。我确保 Console.app 设置为显示“所有消息”并且我没有输入任何搜索字词。
我遗漏了哪一步,或者哪些细节需要有所不同?
【问题讨论】:
【参考方案1】:您似乎对OSLogType.debug
不满意。控制台无法显示此类日志。
但其他人工作完美。
请尝试然后在控制台应用程序中检查它们。
os_log("%@", log: logDebug, type: OSLogType.info, String(format:"%i", arguments: [1]))
os_log("%@", log: logDebug, type: OSLogType.error, String(format:"%i", arguments: [1]))
甚至:
os_log("%@", log: logDebug, type: OSLogType.default, String(format:"%i", arguments: [6]))
【讨论】:
以上是关于从 iOS 设备获取统一系统日志的主要内容,如果未能解决你的问题,请参考以下文章