0

我正在使用 worklight 6.0,并且可以使用WL.Logger.debug("msg");.

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

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

4

1 回答 1

2

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


客户端日志记录(应用程序)

  • WL.Logger 对象(阅读此内容!)
  • 相关问题:How to use WL.Logger api to output log messages to a file

    如果您想存储日志行并稍后将它们发送回某个后端系统,您可以使用回调函数将日志发送到服务器上的文件

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

    例如,您需要在自己的应用程序中做的不是显示 an,而是alert()使用Cordova File API将这些日志行保存在一个文件中,然后在需要时通过 Worklight Adapters 将它们发送回您的后端,或者AJAX 调用或电子邮件应用程序等...

    普通\js\main.js:

    var appLogic = new WL.Logger.create({pkg: 'appLogic'});
    
    function wlCommonInit(){
      appLogic.debug("log from app");
    }
    

    common\js\initOptions.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); });
    }
    
于 2014-01-06T04:27:17.127 回答