我正在使用 IBM Worklight 框架开发一个 iOS 应用程序。我想在我的代码运行时记录消息,例如“应用程序启动成功!”
我的问题是
如何使用 WL.Logger api 记录消息?
我正在使用 IBM Worklight 框架开发一个 iOS 应用程序。我想在我的代码运行时记录消息,例如“应用程序启动成功!”
我的问题是
如何使用 WL.Logger api 记录消息?
工作灯 6.0:
查看 IBM InfoCenter 中更新的 WL.Logger 功能(此处和此处)。特别是允许您设置回调的部分。
打开 initOptions.js 并添加创建一个回调函数,该函数将在每条日志消息发送到控制台后调用:
var logHandler = function (message, priority, pkg) {
//... write to a file or send logs to a server
};
您可以使用Cordova File API将日志消息写入设备上的文件(或 JSONStore、LocalStorage、Cordova Storage 等)。稍后(setInterval)您可以读取该文件的内容并使用适配器(或jQuery.ajax等)将其发送到服务器。在服务器上,您可以使用适配器内部的 Java来写入文件……或写入数据库、ElasticSearch 集群、数据基础架构云产品等。
var wlInitOptions = {
connectOnStartup : true,
logger : {enabled: true, level: 'debug', stringify: true, pretty: false,
tag: {level: false, pkg: true}, whitelist: [], blacklist: [], callback: logHandler}
};
注意callback: logHandler
上面的代码块。
Worklight 6.0 之前的版本:
此功能不是 Worklight 6.0 之前的 WL.Logger 的一部分,但您可以实现它。例如:
//Implementation:
var LoggerWrapper = (function (callback) {
var _cb, _ctx;
return {
setCallbackAndContext : function (cb, ctx) {
_cb = cb;
_ctx = ctx;
}
log : function () {
console.log.apply(console, arguments);
_cb(_ctx, arguments)
}
}
})();
//Usage:
LoggerWrapper.setCallbackAndContext(functionThatCallsAdapter, ObjectThatHasNetworkEnvironmentInfoEtc);
LoggerWrapper.log('hello');
提供有用信息的 API。(上下文)可以附加到日志消息中:
environment : WL.Client.getAppProperty(WL.AppProp.ENVIRONMENT)
appName : WL.Client.getAppProperty(WL.AppProp.APP_DISPLAY_NAME)
appVersion : WL.Client.getAppProperty(WL.AppProp.APP_VERSION)
deviceContext : WL.Device.getContext() //see Location Services API
network: WL.Device.getNetworkInfo() //async
timestamp: new Date()
调试模式
许多应用程序通过启用“调试模式”而不是默认情况下捕获额外的日志并将它们发送到服务器。
运营分析
如果您已配置新的Operational Analytics 功能,您只需在回调 ( )中调用WL.Analytics.log 。logHandler
传递日志消息,它们将显示在Analytics Search View中。