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

Я пытаюсь получить некоторые выход из моего приложения через Унифицированный журнал (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 в консоли устройства?

Ответ 1

Окно "Устройства и симуляторы" отображает только отчеты о сбоях. Используйте приложение консоли или терминал, используя команду log --stream, чтобы увидеть выход в режиме реального времени.

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

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

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

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

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

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

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

Однако, независимо от настроек журнала, в окне "Устройства и симуляторы" появятся только отчеты о сбоях.

Ответ 3

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

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

Ответ 4

Мой os_log пропал после выпуска приложения в магазине приложений. Думаю, когда я построил приложение для выпуска, опция отладки была отключена.

Чтобы включить ведение журнала... перейдите в Product> Scheme> Edit Scheme> Run Debug... затем проверьте исполняемый файл Debug.