После долгих исследований и анализа источника 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
.Я не пробовал это, но это должно работать.
Надеюсь, это поможет сэкономить время другим, так как я не смог найти никакой документации по этому вопросу.