Просмотр сообщений 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
Однако, независимо от настроек журнала, в окне "Устройства и симуляторы" появятся только отчеты о сбоях.
Ответ 2
Типы журналов.debug и.info по умолчанию хранятся только на памяти (не сохраняются на диске), поэтому они не будут видны на консоли устройства.
Подробная информация: https://developer.apple.com/documentation/os/logging?language=objc
Также здесь очень приятно WWDC: https://developer.apple.com/videos/play/wwdc2016/721/
Ответ 3
Еще один подводный камень: если вы установили OS_ACTIVITY_MODE
для disable
в своей схеме, то вы не увидите журналы для вашего приложения в консоли.
Вы должны удалить или снять этот аргумент.
Ответ 4
Мой os_log пропал после выпуска приложения в магазине приложений. Думаю, когда я построил приложение для выпуска, опция отладки была отключена.
Чтобы включить ведение журнала... перейдите в Product> Scheme> Edit Scheme> Run Debug... затем проверьте исполняемый файл Debug.