IBM Worklight 6.0 - How to write logs to a file and send them back?

佐手、 提交于 2019-12-11 21:14:59

问题


I am using worklight 6.0 and I am able to log data to a console using WL.Logger.debug("msg");.

My question is: How to write all of these logs to a file?

My requirement is to store these logs on the mobile device itself so that if some problem occurs, the user will be able to report the problem by attaching that log file. In the app there will be a menu "Report problem", if the user clicks on that, email is opened with this log attached automatically.


回答1:


Server-side logging (adapters):

  • Logging and monitoring mechanisms
  • WL.Logger.debug, info, warn, and error
  • Related question: Worklight 5.0.6.1 - System.out.println() logging from Worklight adapter is not working

    Basically, you need to change the logging level in the application server's server.xml in order to be able to view different logging data. There you also decide which file will house these logs (by default messages.log) - see documentation for location based on your application server.


Client-side logging (application):

  • The WL.Logger object (read this!)
  • Related question: How to use WL.Logger api to output log messages to a file

    If you would like to store your log lines and later on send them back to some backend system, you can use a Callback function to send the logs to a file on your server

    Example code:
    In this code the logHandler() function treats only packages that I have decided I want to process, by create a new Logger object ("appLogic") for specific logs I want to log in the app.

    What you would need to do in your own app, for example, instead of displaying an alert() is to use the Cordova File API to save these log lines in a file and then, when required, to send them back to your backend via Worklight Adapters or AJAX calls or an email app, etc...

    common\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); });
    }
    


来源:https://stackoverflow.com/questions/20941874/ibm-worklight-6-0-how-to-write-logs-to-a-file-and-send-them-back

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!