Worklight:将客户端日志发送到服务器



我使用的是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受应用程序服务器级别配置的约束

此外,WL.Analytics.log数据不会进入报表数据库。填充数据库的唯一公共API是WL.Client.logActivity。我建议使用WL.Logger和WL.Analytics API。

最新更新