I\'m trying to get some logging out of my app through Unified Logging (os_log)
Here\'s the initialization of the log:
var osLog : OSLog = OSLog(subsystem
The "Devices and Simulators" window only shows crash reports. Use the Console app or Terminal, via the log --stream
command, to see live log output.
To see the device's live log messages via the Console app, either when running from Xcode or when running from the device directly:
.debug
level messages, make sure to select Include Debug Messages as well. (Without those items selected, the Console displays .default
, .fault
, and .error
level messages only.)If you still don't see the messages, try entering this Terminal command to configure the logging levels for your app:
sudo log config --subsystem com.test.testapp --mode level:debug
This turns on .debug
-level logging for subsystem "com.test.testapp" (which includes .info
and .default
messages).
If you want to persist the messages, rather than the default of memory-only, turn on persistence for the three levels at the same time, like so:
sudo log config --subsystem com.test.testapp --mode level:debug,persist:debug
Regardless of any log settings, though, only crash reports will appear in the "Devices and Simulators" window.
My os_log went missing after releasing an app to app store. I guess when I built the app for release, the debug option was turned off.
To enable the logging back... go to Product > Scheme > Edit Scheme > Run Debug ... then check Debug executable.
Another pitfall: If you have set OS_ACTIVITY_MODE
to disable
in your scheme, then you will not see any logs for your app in console.
You have to remove or uncheck that argument.
Log types .debug
and .info
are by default memory only (not saved on disk) so it won't be visible on the device console.
Detailed info: https://developer.apple.com/documentation/os/logging?language=objc
Also here is pretty nice WWDC: https://developer.apple.com/videos/play/wwdc2016/721/