Viewing os_log messages in device console

13,119

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:

enter image description here

Solution 5

Following screenshots could be helpful for reference- enter image description here

enter image description here

Share:
13,119

Related videos on Youtube

Nitay
Author by

Nitay

http://en.wikipedia.org/wiki/Me

Updated on June 04, 2022

Comments

  • Nitay
    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
    Carmen about 5 years
    There 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
    Peter Lamberg over 4 years
    There is a question on how to disable logging where this variable is mentioned in a comment stackoverflow.com/questions/41142848/…
  • jakedunc
    jakedunc about 3 years
    This is what got me, this was disabled for Firebase Debug View to work, thanks!