我正在使用 worklight 6.0,并且可以使用WL.Logger.debug("msg");
.
我的问题是:如何将所有这些日志写入文件?
我的要求是将这些日志存储在移动设备本身上,这样如果出现问题,用户将能够通过附加该日志文件来报告问题。在应用程序中会有一个“报告问题”菜单,如果用户点击该菜单,则会打开电子邮件并自动附加此日志。
我正在使用 worklight 6.0,并且可以使用WL.Logger.debug("msg");
.
我的问题是:如何将所有这些日志写入文件?
我的要求是将这些日志存储在移动设备本身上,这样如果出现问题,用户将能够通过附加该日志文件来报告问题。在应用程序中会有一个“报告问题”菜单,如果用户点击该菜单,则会打开电子邮件并自动附加此日志。
服务器端日志记录(适配器):
相关问题:Worklight 5.0.6.1 - System.out.println() 来自 Worklight 适配器的日志记录不起作用
基本上,您需要更改应用程序服务器中的日志记录级别,server.xml
以便能够查看不同的日志记录数据。在那里,您还可以决定哪个文件将存放这些日志(默认为 messages.log) - 请参阅基于您的应用程序服务器的位置文档。
客户端日志记录(应用程序):
相关问题: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); }); }