zlogjs-adapter v0.2.16
zlogjs-adapter
log http request, response, and get the logged messages
##DESCRIPTION
zlogjs-adapter is just for experminetal purposes for enoa-client, you can log the http request, response and get the saved logged messages.
zlogjs-adapter is build for enoa-client just for experimental purposes.
Table of Contents
Prerequisites
Clients should be registered with the regarding service
Installation
Install stable version from NPM:
npm install zlogjs-adapter --saveConfiguration
zlogjs-adapter can be used with enoa-client, for more information on how to use enoa-client in your App view the enoa-client.
zlogjs-adapter configuration
Example
var zlog = {
collections:{
adapter:{
appId:'app_id',
apiKey:'api_key',
adapter:require('zlogjs-adapter'),
plugin:'zlogjs-http-logger',
host:'host', port:'port' ,
mode:"remote"
}
}
};
var client = require('enoa-client')(zlog);
//client is initialized nowSKIP API EXAMPLE
var zlog = {
collections:{
adapter:{
appId:'app_id',
apiKey:'api_key',
adapter:require('zlogjs-adapter'),
host:'host', port:'port' ,
mode:"remote",
SKIP:{
"/api/a":"CODE":{"<":304, ">":200},
"/api/b":200
"/api/c":"CODE":{"<=":400, ">=":499},
"/api/d":true
}
}
}
}
var client = require('enoa-client')(zlog);
//client is initialized nowGLOBAL SKIP EXAMPLE
var zlog = {
collections:{
adapter:{
appId:'app_id',
apiKey:'api_key',
adapter:require('zlogjs-adapter'),
host:'host', port:'port' ,
mode:"central",
SKIP_CODE:450
}
}
};
var client = require('enoa-client')(zlog);
//client is initialized nowTAGS EXAMPLE
var zlog = {
collections:{
adapter:{
appId:'app_id',
apiKey:'api_key',
adapter:require('zlogjs-adapter'),
host:'host', port:'port' ,
mode:"central",
TAGS:{
"/api/a":"tag1",
"/api/b":"tag1:tvalue",
"/api/c":["tag1:tvalue","tag2:tvalue"],
"/api/d":["tag1","tag2"],
"/api/e":{"tag1":"tvalue","tag2":"tvalue"},
"splitter":":"
}
}
}
}
var client = require('enoa-client')(zlog);
//client is initialized nowOverview
Features
Methods
Logger && Log
//express
var zlog = {
collections:{
adapter:{
appId:'app_id',
apiKey:'api_key',
adapter:require('zlogjs-adapter'),
plugin:'zlogjs-express-logger',
host:'host', port:'port' ,
mode:"remote"
}
}
};
var client = require('enoa-client')(zlog);
express_app.use(client.adapter.logger);
//normal use
client.adapter.log(//parameters)//http
var zlog = {
collections:{
adapter:{
appId:'app_id',
apiKey:'api_key',
adapter:require('zlogjs-adapter'),
plugin:'zlogjs-http-logger',
host:'host', port:'port' ,
mode:"remote"
}
}
};
var client = require('enoa-client')(zlog);
http.createServer(function (req, res) {
/*HANDLERS BASED ON ROUTES*/
req._start = new Date;
//Handlers
/*HTTP-SERVER-LOGGER*/
client.zlog.logger(req, res, res.body, function(err, data){ /*console.log(err, data);*/ });
}).listen(PORT, function(){});
//normal use
client.adapter.log(//parameters)Log using service
//config
var adapter = {
collections:{
adapter:{
appId:'app_id',
apiKey:'api_key',
adapter:require('zlogjs-adapter'), host:'host', port:'port',
mode : 'central'
}
}
}
var client = require('enoa-client')(adapter);Log using local file
//config
var adapter = {
collections:{
adapter:{
appId:'app_id',
apiKey:'api_key',
adapter:require('zlogjs-adapter'), host:'host', port:'port',
mode : 'local', //|| leave mode
}
}
}
var client = require('enoa-client')(adapter);Messages
// parameters --> (page, limit, callback)
client.adapter.messages(10, 10, callback);
client.adapter.messages(10, 10, callback);MessageById
//ref is always given inside messages body along with id
client.adapter.getMessageById({id:'id'}, callback);Operations History
clien.adapter.operationsHitsory(interval,callback);System Status per Operation
client.adapter.systemStatusPerOperation(callback);Syestem responses by ERROR, EXCEPTION, and SUCCESS
client.adapter.status(callback);Locations
client.adapter.locations(callback);Callers IP's
client.adapter.callers(callback);Operations by methods
client.adapter.operations(time, callback);Browsers
client.adapter.browsers(callback);Successes/Key
//overall success calls on the specific api's
client.adapter.successPerKey({api:"true"}, callback);
//How many success calls were executed by a specific user
client.adapter.successPerKey({userid:"_id"}, callback);
//How many success calls were executed while performing a read operation
client.adapter.successPerKey({operation:"read"}, callback);
//How many success calls were generated by a specific API
client.adapter.successPerKey({api:"/api/example/:params"}, callback);Errors/Key
//overall error calls on the specific api's
client.adapter.errorsPerKey({api:"true"}, callback);
//How many errors calls were executed by a specific user
client.adapter.errorsPerKey({userid:"_id"}, callback);
//How many errors calls were executed while performing a read operation
client.adapter.errorsPerKey({operation:"read"}, callback);
//How many errors calls were generated by a specific API
client.adapter.errorsPerKey({api:"/api/example/:params"}, callback);Exceptions/Key
//overall exception calls on the specific api's
client.adapter.exceptionsPerKey({api:"true"}, callback);
//How many exceptions calls were executed by a specific user
client.adapter.exceptionsPerKey({userid:"_id"}, callback);
//How many exceptions calls were executed while performing a read operation
client.adapter.exceptionsPerKey({operation:"read"}, callback);
//How many exceptions calls were generated by a specific API
client.adapter.exceptionsPerKey({api:"/api/example/:params"}, callback);Unique Calls/Key
//overall unique calls from the specific ip
client.adapter.uniqueCalls({http_client_ip:"ipexample"}, callback);Key Calls
//overall calls from the specific ip
client.adapter.keyCalls({http_client_ip:"ipexample"}, callback); Key Calls History by fields
//overall calls from the specific ip
client.adapter.keyCallsHistoryV1(field, keyValueCriteria, callback); Terms
client.adapter.terms(callback);
//OR
client.adapter.find().type('terms').exec(callback);Field-Statistics
client.adapter.fieldStat('field_name',callback);
// OR
client.adapter.find().select('field').type('fstat').exec(callback);Classes
client.adapter.classify('field_name',callback);
// OR
client.adapter.find().select('field_name').type('classify').exec(callback);History
client.adapter.history({interval:'year', where:'level',not:'abc',range:{'level':{'>=':[6]}}},callback);
//OR
client.adapter.find().type('history').where('level').not('abc').range({'level':{'>=':[6]}}).interval('year').exec(callback)Field-specific-history
client.adapter.history({field:'level',interval:'year', where:'level',not:'abc',range:{'level':{'>=':[6]}}},callback)
// OR
client.adapter.find().type('fhistory').where('level').not('abc').range({'level':{'>=':[6]}}).interval('year').field('level').exec(callback);Terms-statistics
client.adapter.subClassStat({key:'level', value:'6', order:'term'},callback);
//OR
client.adapter.find().type('cstat').key('level').value('6').order('term').exec(callback)Total
// Get total of Events
client.adapter.total(null,callback);
// Get total of key
client.adapter.total(key,callback);Find
client.adapter.find().select('*').exec(callback);
client.adapter.find({select:'*'}).exec(callback);Select
client.adapter.find().select('*').exec(callback);
//OR
client.adapter.find().select().exec(callback);
//SELECT CUSTOM MODEL
client.adapter.find().select('key').exec(callback);
client.adapter.find().select(['key1','key2','key3','key4']).exec(callback);Where
client.adapter.find().select().where('key1').exec(callback);
client.adapter.find().select().where(['key1',{key2:value}]).exec(callback);
client.adapter.find().select().where({or:['key1',{key2:value}], and:['abc',{level:1}]}).exec(callback);Not
client.adapter.find().select('*').where('key1').not('abc').exec(callback);
client.adapter.find().select().where(['key1',{key2:value}]).not({level:1}).exec(callback);
client.adapter.find().select().where({or:['key1',{key2:value}], and:['abc',{level:1}]}).not({level:2, title:'abc'}).exec(callback);
client.adapter.find().select().where({or:['key1',{key2:value}], and:['abc',{level:1}]}).not('abc').exec(callback);
client.adapter.find().select().where({or:['key1',{key2:value}], and:['abc',{level:1}]}).not(['level','title']).exec(callback);Range
client.adapter.find().select('*').where('key1').range({'level':{'>':[6]}}).exec(callback);
client.adapter.find().select('*').where('key1').range({'level':{'<':[6]}}).exec(callback);
client.adapter.find().select('*').where('key1').range({'level':{'<=':[6]}}).exec(callback);
client.adapter.find().select('*').where('key1').range({'level':{from:0, to:1}}).exec(callback);Time
client.adapter.find().select('*').where('key1').time({from:'2015-05-2', to:'2016-02-03'}).exec(callback);
client.adapter.find().select('*').where('key1').time({from:'2015-05-2T00:00:000Z', to:'2016-02-03T00:00:000Z'}).exec(callback);
client.adapter.find().select('*').where('key1').time('last year').exec(callback);####Pagination
client.adapter.find().select('*').paginate({page:5, limit:100}).exec(callback);
client.adapter.find().select('*').paginate({page:5, limit:100}).exec(callback);
client.adapter.find().select('*').paginate({skip:50, limit:100}).exec(callback);####Page
client.adapter.find().select('*').page(10).exec(callback);####Skip
client.adapter.find().select('*').skip(100).exec(callback);
client.adapter.find().select().where(['key1',{key2:value}]).skip({level:1}).exec(callback);
client.adapter.find().select().where({or:['key1',{key2:value}], and:['abc',{level:1}]}).skip({level:8, title:'xyz'}).exec(callback);
client.adapter.find().select().where({or:['key1',{key2:value}], and:['abc',{level:1}]}).skip('abc').exec(callback);
client.adapter.find().select().where({or:['key1',{key2:value}], and:['abc',{level:1}]}).skip(['1x','pid']).exec(callback);####Limit
client.adapter.find().select('*').limit(10).exec(callback);####Glimit
client.adapter.find().select('*').paginate(adapter.glimit('global')).exec(callback);
client.adapter.find().select('*').page(adapter.glimit('page')).exec(callback);
client.adapter.find().select('*').skip(adapter.glimit('skip')).exec(callback);
client.adapter.find().select('*').limit(adapter.glimit('limit')).exec(callback);####Terms
client.adapter.find().select('code').type('fstat').exec(callback);####Stats
client.adapter.find().select('code').type('fstat').exec(callback);
//OR
client.adapter.stat('code',callback);####Rules #####Set Rules OR Inject(Operator)
var operator = {
"title":".",
"description":"This operator concatenates two strings arrays or objects",
"function":{type:"Function",value:function(a, b){ var result = Object.prototype.toString.call(a) == '[object String]' ? '' : Object.prototype.toString.call(a) == '[object Array]' ? [] : Object.prototype.toString.call(a) == '[object Object]' ? {} : false; if(Object.prototype.toString.call(a) == '[object String]' && Object.prototype.toString.call(b) == '[object String]' ) result = a+b; if(Object.prototype.toString.call(a) == '[object Array]' && Object.prototype.toString.call(b) == '[object Array]' ){ for(i in a) result.push(a[i]); for(i in b) result.push(b[i]); if(Object.prototype.toString.call(a) == '[object Object]' && Object.prototype.toString.call(b) == '[object Object]' ){ for(key in a) result[key] = a[key]; for(key in b) result[key] = b[key]; }}}}
};
eclient.adapter.rules({ftype:'set',type:'operator', rule:operator}, Callback);#####Set Rules OR Inject(Keyword)
var keyword = {
"title":"AA",
"description":"This key word means inside the rule executors which action will be executed it can contain the refferance of action or direct action itself as a function",
"function":{"type":"Function","value":function (){ return "A"; }}
};
eclient.adapter.rules({ftype:'set',type:'keyword', rule:keyword}, Callback);#####Set Rules OR Inject(Object)
var rule = {
"t1" :{"type":"title", "value":"isPrince"},
"d1" : {"type":"operations", "value":["==","!="]},
"e1":[{"type":"target", "value":"king", "factname":"father","actref":"a1", "opref":0},{"type":"target", "value":"minister", "factname":"mother","actref":"a3","opref":1},{"type":"target", "value":"great king", "factname":"grandfather","actref":"a2","opref":0}],
"a1":{
"type":"action",
"value":{"type":"Function","value":function (msg){ console.log(msg+'isPrince'); }},
"params":"fact"
"actref":"a2"
},
"a2":{
"type":"action",
"value": {"type":"Function","value":function (){ console.log('confratulations, you belong to a Royal famliy'); }},
"params":"grandfather"
},
"a3":{
"type":"action",
"value":{"type":"Function","value":function (){ console.log("isNotPrince"); }}
},
"c1":{"type":"description", "value":"if the fact father or mother is king, and queen respectively then you are a prince, and if grand father is great king , then you belong to royal family"}
};
eclient.adapter.rules({ftype:'set',type:'rule', rule:rule}, Callback);
//OR
eclient.adapter.rules({ftype:'set',type:'knowledgebase', rule:rule}, Callback);#####Set Rules OR Inject(Array)
var arr = [
{
"t1" :{"type":"title", "value":"testT4"},
"d1" : {"type":"operations", "value":"=="},
"e1":[{"type":"target", "value":"parent", "factname":"father", "actref":"a1"},{"type":"target", "value":"parent", "factname":"mother", "actref":"a1"},{"type":"target", "value":"parent", "factname":"grantfather", "actref":"a2"}],
"a1":{"type":"action", "value":"king"},
"a2":{"type":"action", "value":{type:"Function", value:function(){ console.log("Your Father!");}}},
"a3":{"type":"action", "value":{type:"Function", value:function(){ console.log("King");}}},
"c1":{"type":"description", "value":"if the fact equal value father it will return king || true"}
},{
"t1" :{"type":"title", "value":"testT5"},
"d1" : {"type":"operations", "value":">"},
"e1":{"type":"target", "value":6547852.0265, "factname":"sales"},
"a1":{"type":"action", "value":"return"},
"c1":{"type":"description", "value":"if the fact greater then value sales it will return true"}
},{
"t1":{"type":"title", "value":"testT6"},
"d1":{"type":"operations", "value":"=="},
"e1":{"type":"target", "value":"this", "factname":"father"},
"a1":{"type":"action", "value":"return"},
"c1":{"type":"description", "value":"if the fact is equal to father then it will return true"}
}
];
eclient.adapter.rules({ftype:'set',type:'knowledgebase', rule:arr}, Callback);#####Get Keyword
//get saved customized operators
eclient.adapter.rules({ftype:'get',type:'keyword'}, Callback);
eclient.adapter.rules({ftype:'get',type:'keyword', key:'title || identifier'}, Callback);#####Get Operator
//get saved standard operators
eclient.adapter.rules({ftype:'get',type:'operator', key:'title || identifier'}, Callback);
eclient.adapter.rules({ftype:'get',type:'operator'}, Callback);#####Get Kb || a single rule
eclient.adapter.rules({ftype:'get',type:'knwoledgebase', key:'title || identifier'}, Callback);
eclient.adapter.rules({ftype:'get',type:'knowledgebase'}, Callback);Issues or Suggestions
As zlogjs-adapter is just an experimantal adapter for enoa-client, anybody who can build or contribute is welcome.
License
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago