I'm trying to use unified logging to log messages and retrieve them from a device for inspection. I created a new OSLog instance with
let logDebug = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "⚠️ debug")
Then I log messages with
os_log("%@", log: logDebug, type: OSLogType.debug, String(format:message, arguments: formatArgs))
This works fine in the Xcode console. It's supposed to be possible to retrieve these logs from an Xcode device by
- Doing a sysdiagnose (as Apple explains here)
- Transferring the sysdiagnose to a Mac, and then
- Inspecting the log (in
system_logs.logarchive) with Console.app or thelogcommand line tool.
When I do this, none of my logs are shown. No logs with the expected subsystem (bundle ID) are shown.
However, if I examine the log files in system_logs.logarchive directly via grep or vim, the messages are present. So they're in the logs, but for some reason neither Console.app nor log will show them. I made sure that Console.app is set to show "all messages" and I haven't entered any search terms.
What step am I missing, or what detail needs to be different?
It seems you have no luck with
OSLogType.debug. Console cannot show this kind of log.But others work perfectly. Please try then check them in Console app.
os_log("%@", log: logDebug, type: OSLogType.info, String(format:"%i", arguments: [1]))os_log("%@", log: logDebug, type: OSLogType.error, String(format:"%i", arguments: [1]))even:
os_log("%@", log: logDebug, type: OSLogType.default, String(format:"%i", arguments: [6]))