Читайте логи, используя новый API swift os_log
Устаревший в iOS 10.0: os_log(3) заменил asl(3)
Таким образом, iOS 10.0 явно не поддерживает API asl (Apple System Log) и заменяет его на очень ограниченный API os_log.
Я использую что-то похожее на фрагмент кода ниже, чтобы прочитать записи журнала для запущенного приложения, чтобы показать в uitextview в приложении - и теперь оно полно предупреждений об устаревании. Кто-нибудь знает способ чтения печатного журнала с использованием нового API os_log? Потому что я вижу только API для записи ( https://developer.apple.com/reference/os/1891852-logging).
import asl
let query = asl_new(UInt32(ASL_TYPE_QUERY))
let response = asl_search(nil, query)
while let message = asl_next(response) {
var i: UInt32 = 0
let key = asl_key(message, i)
print(asl_get(message, key))
...
}
Редактировать после ответа @Will Loew-Blosser
https://developer.apple.com/videos/play/wwdc2016/721/ хорошо объяснил, что произойдет с регистрацией в будущем. Самым большим преимуществом было то, что журналы помещаются в какой-то сжатый формат и расширяются только новым консольным приложением. Что делает мою миссию безнадежной.
Парень (Стив Шимански) в видео упоминает "Все API-интерфейсы журналирования ASL заменены новыми API-интерфейсами" и "Новые API-интерфейсы для поиска новых данных журнала не будут опубликованы в этом выпуске" asl_search
, И это было именно то, что я искал!
Также он упоминает, что скоро будет API.
1 ответ
Похоже, вам нужно использовать расширенную консоль вместо собственного средства просмотра журналов. Журналы сжимаются и не раскрываются до тех пор, пока их не просматривают - это делает ведение журнала гораздо менее навязчивым на уровнях отладки. Однако нет текстовой формы журналов.
См. Видеосессию WWDC 2016 года 721 "Унифицированное ведение журнала и отслеживание активности" https://developer.apple.com/videos/play/wwdc2016/721/
Также образец приложения Apple, демонстрирующий новый подход, имеет недокументированную настройку сборки, которую мне пришлось добавить в мое приложение iOS. См. Настройки в приложении iOS "Бумажная компания (Swift)". Параметр находится в разделе "Цели" окна верхнего уровня xCode. Вот шаги, которые я выполнил:
На странице "Настройки сборки" добавьте в "Пользовательский" новый раздел = ASSETCATALOG_COMPRESSION.
Под ним добавьте две строки:
Debug = без потерь
Релиз = уважение-актив-каталог
После добавления этого параметра сборки в моем приложении работало ведение журнала в соответствии с демонстрацией видеосеанса.