Ibm mobilefirst Worklight Analytics,本机Java API,仪表板中无消息

Ibm mobilefirst Worklight Analytics,本机Java API,仪表板中无消息,ibm-mobilefirst,worklight-analytics,Ibm Mobilefirst,Worklight Analytics,Worklight 6.2.0 三星Galaxy S4、Android 4.4.2上的本机Worklight应用程序 WLAnalytics.enable(); WLAnalytics.log("some text", new org.json.JSONOBject() ); WLAnalytics.send(); // and also go on to successfully call an adapter Analytics Dasboard显示应用程序版本和适配器活动。日志搜索不显

Worklight 6.2.0 三星Galaxy S4、Android 4.4.2上的本机Worklight应用程序

WLAnalytics.enable();
WLAnalytics.log("some text", new org.json.JSONOBject() );
WLAnalytics.send();

// and also go on to successfully call an adapter
Analytics Dasboard显示应用程序版本和适配器活动。日志搜索不显示任何应用程序日志消息,用于选择应用程序的下拉列表仅显示“所有应用程序”,不显示我的应用程序

我是否错过了一些初始化步骤?还有其他想法吗

**编辑以添加**

有人建议我们应采用以下方法:

 WLAnalytics.log("some text");

在我们的6.2.0.00 CLI环境中没有这样的Java方法。

现在,我建议您只使用WLAnalytics.log(String)方法。无论是通过文档还是代码修复,都有一些明显的不一致需要处理

Logger API最初是为了将日志数据发送到自定义适配器而创建的,这就是为什么它们使用字典/对象作为额外元数据的原因。发送到自定义适配器的数据可以作为有效的JSON对象读取,以便在适配器上运行操作

Analytics API模仿了WL.Logger API,目的相同:在worklight适配器上解析JSON。Operational analytics server为拦截和显示其中一些日志提供了便利,但并非如您所知,所有日志都被捕获


不过,您的问题都是有效的,因为文档中没有对此进行描述。在未来的版本中,我们可能会使用在操作分析控制台中传递到API中的额外JSON对象,但就目前而言,它们仅用于将分析发送到自定义适配器的原始目的。

答案是,在使用纯本机应用程序时,似乎需要进一步的初始化要求,这些通常是使用Worklight CLI工具构建的

这是初始化,请注意对Logger.setContext()的调用

那么这就行了

    WLAnalytics.log("My test message2", new org.json.JSONObject());
值得注意的是,在正常运行中不需要调用WLAnalytics.send(),因为通常情况下,分析数据会作为适配器调用的载体进行缓冲和发送。但是,在测试对send()的调用时,确实有帮助


此外,如果在分析WAR与Worklight Server WAR位于不同机器上的环境中运行,则会有额外的延迟。因此,测试所有这些都需要小心。

谢谢。我不想在这里吹毛求疵,我感谢你花时间解释历史。然而,我没有看到一个JavaAPI方法记录了一个参数。我想我的Java编码伙伴明天会试试。希望我们能尽快修复文档…我们已经尝试过了。JavaAPI中没有这样的方法。请你提点别的建议好吗?你一点也不挑剔。你所有的担心都是完全正确的。我正在研究如何解决您提出的一些问题。当然,如果需要的话,你可以打开PMR来加速这些修复。你是对的,Android Java API没有这样的API,我错了。我曾尝试在iOS上复制您的项目,但无法(我选择iOS是因为我已经进行了环境设置,不久将在Android上尝试,并将报告结果。)在iOS上,我可以调用等效的分析日志方法,并且可以搜索日志。在Android上尝试后将添加另一条评论。另一个问题,您是否拥有Worklight最新ifix/fixpack中的Analytics WAR文件?
    WLAnalytics.log("My test message2", new org.json.JSONObject());