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