it-swarm.com.ru

Просмотр сообщений os_log в консоли устройства

Я пытаюсь выйти из приложения через Unified Logging (os_log)

Вот инициализация журнала:

var osLog : OSLog = OSLog(subsystem: "com.test.testapp", category: "native-tester")

И вот как я это использую:

os_log("iOS App initialized successfully!", log: osLog, type:.info)

При обычной отладке приложения журналы корректно отображаются на выходе консоли, но когда я смотрю на консоль устройства (показанную в окне «Устройства и симуляторы»), я их вообще не вижу.

В этой статье говорится, что вы должны настроить систему для включения журналов отладки, используя

Sudo log config --mode "level:debug" --subsystem com.test.testapp

Но это, казалось, не имело значения. Я предполагаю, что это потому, что я настраиваю Mac для просмотра логов, а не iPad.

Как просмотреть журналы ipad/iphone из os_log в консоли устройства?

11
Nitay

В окне «Устройства и симуляторы» отображаются только отчеты о сбоях. Используйте Консольное приложение или Терминал с помощью команды log --stream, чтобы увидеть вывод журнала в реальном времени.

Чтобы увидеть сообщения журнала в реальном времени на устройстве через приложение Console, либо при запуске из Xcode, либо при запуске с устройства напрямую:

  • Откройте Console.app.
  • Нажмите на название устройства на левой боковой панели, под «Устройствами».
  • Выберите Действие , затем Включить информационные сообщения из меню. Если вы также используете сообщения уровня .debug, обязательно выберите Включить сообщения отладки . (Без выбранных элементов на консоли отображаются только сообщения уровня .default, .fault и .error.)

Если вы все еще не видите сообщения, попробуйте ввести эту команду терминала, чтобы настроить уровни ведения журнала для вашего приложения:

Sudo log config --subsystem com.test.testapp --mode level:debug

Это включает ведение журнала уровня .debug для подсистемы "com.test.testapp" (которая включает в себя сообщения .info и .default).

Если вы хотите сохранить сообщения, а не по умолчанию только для памяти, включите сохранение для трех уровней одновременно, например, так:

Sudo log config --subsystem com.test.testapp --mode level:debug,persist:debug

Независимо от каких-либо настроек журнала, в окне «Устройства и симуляторы» будут отображаться только отчеты о сбоях.

11
leanne

Типы журналов .debug и .info по умолчанию только для памяти (не сохраняются на диске), поэтому они не будут видны на консоли устройства.

Подробная информация: https://developer.Apple.com/documentation/os/logging?language=objc

Также здесь есть красивая Nice WWDC: https://developer.Apple.com/videos/play/wwdc2016/721/

4
Tomasz Czyżak

Еще один подводный камень: если в вашей схеме вы установили для OS_ACTIVITY_MODE значение disable, то вы не увидите никаких журналов для своего приложения в консоли.

Вы должны удалить или снять этот аргумент.

3
samwize