IBM Worklight 6.0 - 如何将日志写入文件并将其发回?

时间:2014-01-06 02:12:23

标签: logging ibm-mobilefirst worklight-runtime

我正在使用worklight 6.0,我可以使用WL.Logger.debug("msg");将数据记录到控制台。

我的问题是:如何将所有这些日志写入文件?

我的要求是将这些日志存储在移动设备上,以便在出现问题时,用户可以通过附加该日志文件来报告问题。在应用程序中会出现一个“报告问题”菜单,如果用户点击该菜单,则会自动打开电子邮件并附上此日志。

1 个答案:

答案 0 :(得分:2)

服务器端日志记录(适配器)


客户端记录(应用程序)

  • The WL.Logger object(读这个!)
  • 相关问题:How to use WL.Logger api to output log messages to a file

    如果您想存储日志行,稍后将其发送回某个后端系统,您可以use a Callback function to send the logs to a file on your server

    示例代码:
    在此代码中,logHandler()函数仅处理我已决定要处理的包,方法是为要在应用程序中登录的特定日志创建新的Logger对象(“appLogic”)。

    您需要在自己的应用中执行的操作,例如,alert()不是显示var appLogic = new WL.Logger.create({pkg: 'appLogic'}); function wlCommonInit(){ appLogic.debug("log from app"); } ,而是将这些日志行保存在文件中,然后在需要时发送它们通过Worklight Adapters或AJAX调用或电子邮件应用程序等回到您的后端......

    常见\ JS \ main.js:

     var wlInitOptions = {
        connectOnStartup : false,
        analytics : {
          enabled: false
          //url : ''
      },
      logger : {enabled: true, level: 'debug', stringify: true, pretty: false,
          tag: {level: false, pkg: true}, whitelist: [], blacklist: [], callback: logHandler},    
     };
    
     function logHandler(message, priority, pkg) {
       if (pkg == 'appLogic') {
          alert (message);
       }
    }
    
    if (window.addEventListener) {
      window.addEventListener('load', function() { WL.Client.init(wlInitOptions); }, false);
    } else if (window.attachEvent) {
      window.attachEvent('onload',  function() { WL.Client.init(wlInitOptions); });
    }
    

    常见\ JS \ initOptions.js:

    {{1}}