Получение унифицированных системных журналов с устройства iOS - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь использовать единую регистрацию для регистрации сообщений и извлечения их из устройства для проверки. Я создал новый OSLog экземпляр с

let logDebug = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "⚠️ debug")

Затем я регистрирую сообщения с

os_log("%@", log: logDebug, type: OSLogType.debug, String(format:message, arguments: formatArgs))

Это прекрасно работает в консоли XCode. Предполагается, что можно получить эти журналы с устройства Xcode с помощью

  • Выполнение системной диагностики (как Apple объясняет здесь )
  • Перенос системного диагноза на Mac, а затем
  • Проверка журнала (в system_logs.logarchive) с помощью Console.app или инструмента командной строки log.

Когда я делаю это, ни один из моих журналов не показывается. Журналы с ожидаемой подсистемой (идентификатором пакета) не отображаются.

Однако , если я проверяю файлы журнала в system_logs.logarchive напрямую через grep или vim, сообщения присутствуют. Так что они в журналах, но по какой-то причине ни Console.app, ни log не покажут их. Я удостоверился, что Console.app настроен на показ «всех сообщений», и я не ввел ни одного условия поиска.

Какой шаг мне не хватает, или какие детали должны отличаться?

1 Ответ

0 голосов
/ 07 ноября 2018

Кажется, вам не повезло с OSLogType.debug. Консоль не может показать этот вид журнала.

Но другие работают отлично. Пожалуйста, попробуйте затем проверить их в консольном приложении. os_log("%@", log: logDebug, type: OSLogType.info, String(format:"%i", arguments: [1]))

os_log("%@", log: logDebug, type: OSLogType.error, String(format:"%i", arguments: [1]))

даже

os_log("%@", log: logDebug, type: OSLogType.default, String(format:"%i", arguments: [6]))

...