Viewing os_log messages in device console

前端 未结 4 1360
情话喂你
情话喂你 2021-02-04 01:20

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         


        
相关标签:
4条回答
  • 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.

    0 讨论(0)
  • 2021-02-04 01:33

    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.

    0 讨论(0)
  • 2021-02-04 01:40

    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.

    0 讨论(0)
  • 2021-02-04 01:42

    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/

    0 讨论(0)
提交回复
热议问题