Ответ 1
Посмотрите на os_log
. Он предлагает все, что вы ищете.
Отказ от ответственности:
Я настоятельно рекомендую вам посмотреть эту ветку на форумах Swift. ТЛ; др
Несмотря на то, что это "рекомендация Apple", ее использование обсуждается из-за проблем с получением журналов:
- получение журналов не является тривиальным процессом. Это на самом деле сложно. Смотрите здесь
- Для большинства пользователей лог файл может быть 100-300 Мб. Что затрудняет отправку.
Он отлично подходит для отладки во время разработки, но трудоемок для запуска, извлечения, отправки пользователями вашего приложения.
Пример:
let customLog = OSLog(subsystem: "com.your_company.your_subsystem_name", category: "Category")
os_log("This is info that may be helpful during development or debugging.", log: customLog, type: .debug)
Несколько замечательных ссылок:
- WWDC 2016 Unified Logging и Tracing.
- Этот ответ Роба. Он говорит, что
NSLog
устарела, и некоторые преимущества использования новой библиотекиos_log
. - Вы также можете получить журналы, используя подход, упомянутый здесь. Убедитесь, что вы видите ? ответы.
Причина, по которой os_log
так силен, заключается в следующем:
- предлагает различные уровни журнала
- имеет разные категории
- Журналы
private
иpublic
- это легкий и построен Apple. Не требует стручков
- В отличие от
print
, который доступен только во время отладки,os_log
можно использовать для просмотра выпущенного приложения (в реальном времени) и просмотра журналов в консольном приложении.
Это отлично подходит для наблюдения за изменениями жизненного цикла приложения без жадного Xcode. Xcode не позволяет переводить приложение в приостановленное состояние...
Примечание: os_log
доступен только для +iOS10
Также есть новые видео с WWDC 2018 и 2019, но они более сфокусированы на os_signpost
. См: