December 16, 2023

45. Записываем и смотрим логи

Начиная с iOS 14 можно пользоваться логгером для записи логов, которые потом можно посмотреть разными способами, в том числе выгрузить с девайса и открыть в стандартном Console.app на маке.

При этом с iOS 15 можно прямо в коде выгружать и смотреть логи с использованием OSLogStore.

В этой статье покажу как можно работать с логами:

  • На главном экране загрузим данные из интернета (список постов)
  • В навбаре будет кнопка для перехода на экран с логами
  • На экране с логами можно будет фильтровать логи по категории и уровню

Для примера будем логировать начало/окончание загрузки данных и ошибки.

Демо записи и чтения логов

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

На iOS < 17 во время работы Xcode логи выглядят следующим образом:

Логи в консоли Xcode на iOS < 17

Их можно удобно фильтровать в отличие от обычных принтов

Демо фильтрации логов на iOS < 17

На iOS 17+ доступно больше опций для отображения логов

Демо логов на iOS 17

Рекомендую посмотреть пару полезных видео, если тема заинтересовала:

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

sudo log collect -device -start '2023-12-10 12:41:00' —output myApp.logarchive

Время лучше указать с небольшим запасом, за несколько минут до возникновения бага.

Код для этой статьи можно посмотреть тут, а другие статьи - тут.