RestLog
auto manage web app log working with restful api
Data struct
{userId: '',resource: '',operation: '', // operation type. default use HTTP methods get / post / put / deletestatus: 1, // operation result. 1 - succeed, -1 - fail, 0 - unknowncreatedAt: '',originRequest: { // original request dataurl: '',method: '',ip: '',userAgent: '',body: {}},originResponse: { // original response datastatusCode: 200,body: {}}}
Usage
import Koa from 'koa'import RestLog from 'restlog'const koa = new Koa()// create restLog instanceconst restLog = new RestLog({dbSaver: { // MongoDB configdbClient: MongoDBInstance,collectionName: 'demo'},getUserId: async (ctx)=> { // get now user idreturn 'test-user'},getResource async (ctx)=> { // get now resource (operation object) idreturn 'test-resource'},filter: (url)=> { // url filter, return false when this url do not need logreturn true},localPath: 'path/to/save/logs/temporary', // local path for saving loguploadCondition: { // upload logs conditionfilesLimit: 2, //fileSizeLimit: 10, // KBfileExpireTime: 3 * 60, // SecondintervalTime: 60, // Second}})// add koa middlewareapp.use(restLog.getMiddleware())/*** pull log info* restLog.search({startAt, endAt, userId, resource, operation, page, pageSize})*/app.listen()