Viewing os_log messages in device console
Solution 1
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:
- Open Console.app.
- Click on the device's name in the left side panel, under "Devices".
- Select Action, then Include Info Messages from the menu. If you are also using
.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.
Solution 2
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.
Solution 3
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/
Solution 4
In the console app, there are two options to include / hide debug and info messages:
Solution 5
Related videos on Youtube
Comments
-
Nitay almost 2 years
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: "com.test.testapp", category: "native-tester")
And here's how I use it:
os_log("iOS App initialized successfully!", log: osLog, type:.info)
When debugging the app normally, the logs appear properly on the console output, but when I look at the device console (Shown in the "Devices and Simulators" window) I don't see them at all.
This article says that you should configure the system to enable the debug logs using
sudo log config --mode "level:debug" --subsystem com.test.testapp
But that didn't seem to make a difference. I'm guessing it's because I'm configuring the mac to view the logs, not the iPad.
How do I view the ipad / iphone logs from os_log in the device console?
-
Carmen about 5 yearsThere is also a radar that debug logs not showing up in the console app even though they are turned on if running on a simulator. Only showing up for real devices forums.developer.apple.com/thread/82736
-
Peter Lamberg over 4 yearsThere is a question on how to disable logging where this variable is mentioned in a comment stackoverflow.com/questions/41142848/…
-
jakedunc about 3 yearsThis is what got me, this was disabled for Firebase Debug View to work, thanks!