Ibm mobilefirst 客户端日志捕获问题
我正在尝试使用worklight 6.1提供的客户端日志捕获功能,如所示: 我做了以下工作:Ibm mobilefirst 客户端日志捕获问题,ibm-mobilefirst,Ibm Mobilefirst,我正在尝试使用worklight 6.1提供的客户端日志捕获功能,如所示: 我做了以下工作: logger : {enabled: true, level: 'debug', stringify: true, pretty: false, tag: {level: false, pkg: true}, whitelist: [], blacklist: [], nativeOptions: {capture: false}}, 我设置了以下初始化选项: var wlInitO
logger : {enabled: true, level: 'debug', stringify: true, pretty: false,
tag: {level: false, pkg: true}, whitelist: [], blacklist: [],
nativeOptions: {capture: false}},
function log(deviceInfo, logMessages) {
WL.Logger.info("Received device logs");
return true;
}
logger : {enabled: true, level: 'debug', stringify: true, pretty: false,
tag: {level: false, pkg: true}, whitelist: [], blacklist: [],
nativeOptions: {capture: false}},
注意nativeOptions:{capture:false}
。如果您在任何时候运行应用程序时,initOptions对象已就位,则日志捕获已关闭。您需要通过使用true
值还原initOptions对象,或者通过调用
WL.Logger.setNativeOptions({capture: true});
或者直接使用等效的本机记录器API来重新打开捕获。记录器:{enabled:true,level:debug',stringify:true,pretty:false,tag:{level:false,pkg:true},白名单:[],黑名单:[],本机选项:{capture:true} 必须在initOptions.js中将本机捕获启用为true 您可以使用包登录,该包将帮助您根据WLClientLogReceiver适配器中的包筛选消息
var myloggerObject = WL.Logger.create({pkg: 'mypackage'});
myloggerObject.debug("Hello world");
您可以在js文件中指定要登录到客户端设备的级别
在适配器中,您将以json数组的形式获得日志消息。
功能日志(设备信息、日志消息){
/*适配器可以选择处理这些参数,例如将它们转发到后端服务器进行安全保存和进一步分析
deviceInfo对象可能如下所示:
{
“appName”:“wlapp”,
“appVersion”:“1.0”,
“设备ID”:“66eed0c9-ecf7-355f-914a-3cedac70ebcc”,
“型号”:“Galaxy Nexus-4.2.2-API 17-720x1280”,
“系统名”:“安卓”,
“系统版本”:“4.2.2”,
“os.arch”:“i686”,//仅限Android
“os.version”:“3.4.0-qemu+”//仅限Android
}
logMessages参数是一个JSON数组
它包含JSON对象元素,可能如下所示:
[{
"timestamp" : "17-02-2013 13:54:23:745", // "dd-MM-yyyy hh:mm:ss:S"
"level" : "ERROR", // ERROR||WARN||INFO||LOG|| DEBUG
"package" : "your_tag", // typically a class name
"msg" : "the message", // a helpful log message
"threadid" : 42, // (Android only)the current thread
"metadata" : { "$src" : "js" } // metadata placed on the log call
}]
*/
//采样日志和过滤方法
var logs= [{
"timestamp" : "17-02-2013 13:54:23:745", // "dd-MM-yyyy hh:mm:ss:S"
"level" : "ERROR", // ERROR||WARN||INFO||LOG|| DEBUG
"package" : "your_tag", // typically a class name
"msg" : "the message", // a helpful log message
"threadid" : 42, // (Android only)the current thread
"metadata" : { "$src" : "js" } // metadata placed on the log call
},
{
"timestamp" : "17-02-2013 13:54:23:745", // "dd-MM-yyyy hh:mm:ss:S"
"level" : "ERROR", // ERROR||WARN||INFO||LOG|| DEBUG
"package" : "mypackage", // typically a class name
"msg" : "my package message", // a helpful log message
"threadid" : 42, // (Android only)the current thread
"metadata" : { "$src" : "js" } // metadata placed on the log call
}
])
}
如果使用诸如文件名之类的元数据以及调试消息进行日志记录,则将在“元数据”属性中的数组中获得这些元数据
建议在解析适配器中的设备日志之前,对对象进行字符串化和解析,以避免出现错误
var logs = JSON.stringify(JSON.parse(logs));
var filteredLogs = logs.filter ...
什么是环境?(安卓或iOS)
var logs = JSON.stringify(JSON.parse(logs));
var filteredLogs = logs.filter ...