| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | 'use strict';/** * 自动记录日志 * * @author CaiAoLin * @date 2017/10/30 * @version */const os = require('os');module.exports = options => {    return function* autoLogger(next) {        // 记录业务日志        function getBussinessLogger(ctx) {            if (ctx.url.match(/ledger/)) {                return ctx.getLogger('ledger');            } else if (ctx.url.match(/stage/)) {                return ctx.getLogger('stage');            }            return ctx.getLogger('mixed');        }        const bLogger = getBussinessLogger(this);        if (this.session.sessionUser) {            const logData = {                method: this.method,                user: this.session.sessionUser,                project: this.session.sessionProject,                data: this.request.body,            };            bLogger.info(JSON.stringify(logData));        } else {            const logData = {                method: this.method,                data: this.body,            };            bLogger.info(JSON.stringify(logData));        }        this.logInfo = { time: new Date() };        const cpus = os.cpus();        this.logInfo.cpus = cpus.map(x => {            return `${((1-x.times.idle/(x.times.idle+x.times.user+x.times.nice+x.times.sys+x.times.irq))*100).toFixed(2)}%`        });        // 自动记录log的action        // const autoLogAction = ['save', 'delete'];        // if (this.actionName !== undefined && autoLogAction.indexOf(this.actionName) >= 0) {        //     // 操作数据的id        //     const idReg = /\/(\d+)/;        //     const paramInfo = this.request.originalUrl.match(idReg);        //     let targetId = paramInfo[1] !== undefined ? paramInfo[1] : -1;        //     targetId = parseInt(targetId);        //        //     const logData = {        //         controller: this.controllerName,        //         action: this.actionName,        //         operation: this.currentName === undefined ? '保存数据' : this.currentName,        //         target_id: targetId,        //     };        //     yield this.service.log.addLog(logData);        // }        yield next;    };};
 |