Ibm mobilefirst 它不是WLClientLogReceiver适配器的回调函数
我已经在initOptions.js中启用了nativeOptions:{capture:true}Ibm mobilefirst 它不是WLClientLogReceiver适配器的回调函数,ibm-mobilefirst,worklight-adapters,Ibm Mobilefirst,Worklight Adapters,我已经在initOptions.js中启用了nativeOptions:{capture:true} 记录器:{enabled:true,level:'debug',stringify:true,pretty:false, 标记:{level:false,pkg:true},白名单:[],黑名单:[],nativeOptions:{capture:true} 在我的主js文件中,我有以下代码 function wlCommonInit(){ // Common initialization co
记录器:{enabled:true,level:'debug',stringify:true,pretty:false, 标记:{level:false,pkg:true},白名单:[],黑名单:[],nativeOptions:{capture:true} 在我的主js文件中,我有以下代码
function wlCommonInit(){
// Common initialization code goes here
WL.Logger.setNativeOptions({'capture': true});
var logger = WL.Logger.create({pkg: 'mypackage'});
logger.debug('Hello world - debug');
//[mypackage] Hello world
logger.log('Hello world - log');
//[mypackage] Hello world
logger.info('Hello world - info');
//[mypackage] Hello world
logger.warn('Hello world - warn');
//[mypackage] Hello world
logger.error('Hello world - error');
//[mypackage] Hello world
WL.Logger.send(); }
假设调用我的适配器“WLClientLogReceiver”。但是我没有接到任何关于这个适配器的电话
请让我知道,我需要启用任何其他设置以将客户端捕获的日志上载到服务器
function log(deviceInfo, logMessages) {
return true;}
<procedure name="log" securityTest="wl_unprotected" audit="true" />
功能日志(设备信息、日志消息){
返回true;}
发送功能未附加到LogInstance
原型,这是使用使用WL.logger.create()创建的记录器实例时所使用的。请打电话
WL.Logger.send();
相反
(以上内容在OP编辑之前发布)。
由于setNativeOptions
是一个异步调用(通过Cordova插件调用),因此在后续logger
调用完成之前,它可能没有成功打开捕获。因此在调用WL.Logger.send()时代码>尚未收集任何内容
这样做:
function wlCommonInit() {
// Common initialization code goes here
WL.Logger.setNativeOptions({'capture': true})
.then(function() {
var logger = WL.Logger.create({pkg: 'mypackage'});
logger.debug('Hello world - debug');
//[mypackage] Hello world
logger.log('Hello world - log');
//[mypackage] Hello world
logger.info('Hello world - info');
//[mypackage] Hello world
logger.warn('Hello world - warn');
//[mypackage] Hello world
logger.error('Hello world - error');
//[mypackage] Hello world
WL.Logger.send();
});
}
send
函数未附加到LogInstance
原型,这是您在使用使用WL.logger.create()创建的记录器实例时使用的原型。请打电话
WL.Logger.send();
相反
(以上内容在OP编辑之前发布)。
由于setNativeOptions
是一个异步调用(通过Cordova插件调用),因此在后续logger
调用完成之前,它可能没有成功打开捕获。因此在调用WL.Logger.send()时代码>尚未收集任何内容
这样做:
function wlCommonInit() {
// Common initialization code goes here
WL.Logger.setNativeOptions({'capture': true})
.then(function() {
var logger = WL.Logger.create({pkg: 'mypackage'});
logger.debug('Hello world - debug');
//[mypackage] Hello world
logger.log('Hello world - log');
//[mypackage] Hello world
logger.info('Hello world - info');
//[mypackage] Hello world
logger.warn('Hello world - warn');
//[mypackage] Hello world
logger.error('Hello world - error');
//[mypackage] Hello world
WL.Logger.send();
});
}
确保检查服务器端日志。适配器描述符文件中的audit=“true”
将在服务器日志(WebSphereLiberty上的messages.log)内联打印传递给适配器的参数。请确保检查服务器端日志。适配器描述符文件中的audit=“true”
将在服务器日志(WebSphereLiberty上的messages.log)内联打印传递给适配器的参数。记录器:{启用:true,级别:debug,stringify:true,pretty:false,标记:{level:false,pkg:true},白名单:[],黑名单:[],nativeOptions:{capture:true}
您已在initOptions.js中将本机捕获启用为true,因此无需再次设置
您可以使用包登录,该包将帮助您根据WLClientLogReceiver适配器中的包筛选消息
var myloggerObject = WL.Logger.create({pkg: 'mypackage'});
myloggerObject.debug("Hello world");
您可以在js文件中指定要登录到客户端设备的级别
In the adapter you will get the log messages as an json array.
功能日志(设备信息、日志消息){
/*适配器可以选择处理参数,
例如,将它们转发到后端服务器,以便
保存和进一步分析
The deviceInfo object may look like this:
{
"appName": "wlapp",
"appVersion": "1.0",
"deviceId": "66eed0c9-ecf7-355f-914a-3cedac70ebcc",
"model": "Galaxy Nexus - 4.2.2 - API 17 - 720x1280",
"systemName": "Android",
"systemVersion": "4.2.2",
"os.arch": "i686", // Android only
"os.version": "3.4.0-qemu+" // Android only
}
The logMessages parameter is a JSON array
that contains JSON object elements, and might look like this:
[{
"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 filteredLogs = logs.filter(function(log){
if(log.package == mypackage) //comparing the package and returns the object
{ return log; }
});
WL.Logger.error(filteredLogs);// This is send only the filtered array to your server
}
如果使用诸如文件名之类的元数据以及调试消息进行日志记录,则将在“元数据”属性中的数组中获得这些元数据
建议在解析适配器中的设备日志之前,对对象进行字符串化和解析,以避免出现错误
var logs = JSON.stringify(JSON.parse(logs));
var filteredLogs = logs.filter ...
希望这对你有用
确保使用设备测试它。记录器:{enabled:true,level:'debug',stringify:true,pretty:false,标记:{level:false,pkg:true},白名单:[],黑名单:[],nativeOptions:{capture:true}
您已在initOptions.js中将本机捕获启用为true,因此无需再次设置
您可以使用包登录,该包将帮助您根据WLClientLogReceiver适配器中的包筛选消息
var myloggerObject = WL.Logger.create({pkg: 'mypackage'});
myloggerObject.debug("Hello world");
您可以在js文件中指定要登录到客户端设备的级别
In the adapter you will get the log messages as an json array.
功能日志(设备信息、日志消息){
/*适配器可以选择处理参数,
例如,将它们转发到后端服务器,以便
保存和进一步分析
The deviceInfo object may look like this:
{
"appName": "wlapp",
"appVersion": "1.0",
"deviceId": "66eed0c9-ecf7-355f-914a-3cedac70ebcc",
"model": "Galaxy Nexus - 4.2.2 - API 17 - 720x1280",
"systemName": "Android",
"systemVersion": "4.2.2",
"os.arch": "i686", // Android only
"os.version": "3.4.0-qemu+" // Android only
}
The logMessages parameter is a JSON array
that contains JSON object elements, and might look like this:
[{
"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 filteredLogs = logs.filter(function(log){
if(log.package == mypackage) //comparing the package and returns the object
{ return log; }
});
WL.Logger.error(filteredLogs);// This is send only the filtered array to your server
}
如果使用诸如文件名之类的元数据以及调试消息进行日志记录,则将在“元数据”属性中的数组中获得这些元数据
建议在解析适配器中的设备日志之前,对对象进行字符串化和解析,以避免出现错误
var logs = JSON.stringify(JSON.parse(logs));
var filteredLogs = logs.filter ...
希望这对你有用
确保使用设备对其进行测试。您是否有logcat或xcode控制台日志?服务器日志如何?WL client+server的版本如何?WLClientLogReceiver.xml描述符文件的内容是什么?适配器中实现的过程是什么?感谢您的编辑。服务器日志文件中没有任何指示(messages.log on liberty)适配器名为?logcat或xcode console没有尝试发送的迹象?Worklight Studio版本6.1 FixPack 1。服务器日志在Worklight Studio、Eclipse IDE中的位置是什么。非常感谢。我想它在Worklight console日志或xcode/log cat控制台中会有一些指示。它在messages.log中可用。它的工作ng find并已将日志上载到服务器。您是否有logcat或xcode控制台日志?服务器日志如何?WL client+server的版本是什么?WLClientLogReceiver.xml描述符文件的内容是什么?您在适配器中实现的过程是什么?感谢编辑。服务器日志文件中没有指示e(messages.log on liberty)适配器名为?logcat或xcode console没有尝试发送的迹象?Worklight Studio版本6.1 FixPack 1。服务器日志在Worklight Studio、Eclipse IDE中的位置是什么。非常感谢。我想它在Worklight console日志或xcode/log cat控制台中会有一些指示。它在messages.log中可用。它的工作ng查找,日志已上载到