我使用的是worklight 6.1,我正试图将在客户端中创建的日志发送到服务器,以便在应用程序崩溃时能够查看日志。我所做的是(基于此链接http://pic.dhe.ibm.com/infocenter/wrklight/v5r0m6/index.jsp?topic=%2Fcom.ibm.worklight.help.doc%2Fdevref%2Fc_using_client_log_capture.html):
-
在wlInitOptions.js 中设置以下内容
logger : { enabled: true, level: 'debug', stringify: true, pretty: false, tag: { level: false, pkg: true }, whitelist: [], blacklist: [], nativeOptions: { capture: true } },
-
在客户端中,我设置了下面我想发送日志的地方:
WL.Logger.error("test"); WL.Logger.send();
-
基于链路实现了具有日志功能的必要适配器
WLClientLogReceiver-impl.js
很遗憾,我在messages.log中看不到日志。有人有什么想法吗?
我还尝试基于此链接将日志发送到分析数据库中http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.monitor.doc/monitor/c_op_analytics_data_capture.html.
我所做的是:
WL.Analytics.log( { "_activity" : "myCustomActivity" }, "My log" );
但是在app_Activity_Report表中没有添加新的条目。我有什么东西不见了吗?
两件事:
-
按照Idan在评论中的建议,确保你看到的是正确的文档。他是对的;此功能在不同版本之间发生了很大变化。
-
你得到了90%的配置,但你错过了最后一点。简单地将日志发送到适配器是不足以让它们显示在messages.log中的。您需要执行以下操作之一才能将其输入messages.log:
- 在WLClientLogReceiver.xml文件的
<procedure>
标记中设置audit="true"属性,或者 - 在适配器实现中显式记录上传的数据。但是,请注意,服务器上的WL.Logger API受应用程序服务器级别配置的约束
- 在WLClientLogReceiver.xml文件的
此外,WL.Analytics.log数据不会进入报表数据库。填充数据库的唯一公共API是WL.Client.logActivity。我建议使用WL.Logger和WL.Analytics API。