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 thelog
command 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]))