Как получить все консольные сообщения для входа в Cordova iOS во время выполнения? - PullRequest
0 голосов
/ 18 сентября 2018

Когда я запускаю свое приложение WKWebview под Cordova на iOS, сообщения, которые я регистрирую в своем веб-приложении с использованием console.debug и console.info, не выводятся на консоль Xcode или в мои журналы.Однако console.log сообщения получают вывод.Как я могу получить все мои сообщения журнала для вывода?

1 Ответ

0 голосов
/ 18 сентября 2018

После долгих исследований и анализа источника cordova.js я понял, что причина, по которой мои console.info сообщения не регистрируются, заключается в том, что Cordova переопределяет консольный объект при работе под iOS.По умолчанию выводятся только сообщения console.log, console.error и console.warn.Причина этого заключается в том, что регистратор Cordova поддерживает следующие уровни журнала:

  • LOG
  • ERROR
  • WARN <-- DEFAULT LEVEL
  • INFO
  • DEBUG

и WARN - уровень журнала по умолчанию.Это означает, что будут выводиться только сообщения, зарегистрированные на уровне WARN и выше, поэтому сообщения console.warn, console.error и console.log будут выводиться только.Чтобы изменить уровень журнала, вам нужно будет сделать следующее:

1) Аналогично тому, как вы использовали бы функцию Cordova exec, загрузив ее модуль, вытакже необходимо загрузить модуль регистратора Cordova в вашем javascript.Чтобы загрузить модуль регистратора, добавьте его в свой javascript:

var logger = require('cordova/plugin/ios/logger');

2) Далее, все, что вам нужно сделать, чтобы изменить уровень ведения журнала по умолчаниюот WARN до другого уровня, такого как DEBUG, это добавить следующий вызов в соответствующее место в вашем коде инициализации.То, где вы вставите этот код, будет зависеть от вашего приложения, но вышеупомянутый модуль logger, который вы объявили на шаге 1 выше, должен находиться в области действия.

logger.level('DEBUG');

Уравнивает васможно использовать, как указано выше: 'LOG', 'ERROR', 'WARN', 'INFO', 'DEBUG'

В качестве альтернативы вы также можете использовать константы уровня, определяемые модулем регистрации Cordova: logger.LOG, logger.ERROR, logger.WARN, logger.INFO, logger.DEBUG.Я не пробовал это, но это должно работать.

Надеюсь, это поможет сэкономить время другим, так как я не смог найти никакой документации по этому вопросу.

...