如何在运行时获取所有控制台消息以登录Cordova iOS?

时间:2018-09-18 12:22:28

标签: javascript ios cordova logging

当我在iOS的Cordova下运行WKWebview应用程序时,使用console.debugconsole.info登录到Web应用程序中的消息没有输出到Xcode控制台或日志中。 console.log条消息正在得到输出。如何获取所有日志消息输出?

1 个答案:

答案 0 :(得分:2)

在对cordova.js来源进行大量研究和审查之后,我意识到未记录我的console.info消息的原因是因为Cordova在iOS下运行时会覆盖控制台对象。默认情况下,仅输出console.log条消息,console.errorconsole.warn条消息。原因是Cordova记录器支持以下日志级别:

  • 日志
  • 错误
  • 警告<-- DEFAULT LEVEL
  • INFO
  • 调试

和WARN是默认日志级别。这意味着仅输出在WARN级别和更高级别记录的消息,因此将仅输出console.warnconsole.errorconsole.log消息。要更改日志级别,您需要执行以下操作:

1)以类似于通过加载Cordova exec函数的模块的方式来使用它,您还需要在JavaScript中加载Cordova logger模块。要加载记录器模块,请将其添加到您的javascript中:

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

2)接下来,要将默认日志记录级别从WARN更改为另一个级别(例如DEBUG)所需要做的就是在初始化的适当位置添加以下调用码。插入此代码的位置取决于您的应用程序,但是您在上面的步骤1中声明的上述logger模块将需要包含在范围内。

logger.level('DEBUG');

您可以使用的级别如上所述:'LOG', 'ERROR', 'WARN', 'INFO', 'DEBUG'

或者,您还应该能够使用Cordova日志记录模块定义的级别常量:logger.LOG, logger.ERROR, logger.WARN, logger.INFO, logger.DEBUG。我没有尝试过,但是应该可以。

希望这可以节省以后的时间,因为我找不到与此有关的任何文档。