autolog4j
Version:
> use
79 lines (69 loc) • 2.53 kB
JavaScript
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var log4js = require('log4js');
var fs = require('fs');
var levels = {
trace: log4js.levels.TRACE,
debug: log4js.levels.DEBUG,
info: log4js.levels.INFO,
warn: log4js.levels.WARN,
error: log4js.levels.ERROR,
fatal: log4js.levels.FATAL
};
var configureLog4js = {
appenders: {
ruleFile: {
type: 'dateFile',
filename: 'logs/',
pattern: 'yyyy-MM-dd.log',
alwaysIncludePattern: true
}
},
categories: {
default: {
appenders: ['ruleFile'], level: 'all'
}
},
replaceConsole: true,
pm2: true,
pm2InstanceVar: 'INSTANCE_ID'
};
var Logger = function () {
function Logger(app) {
_classCallCheck(this, Logger);
this.app = app;
this.configure = app.get('log4js') || configureLog4js;
this._init();
}
_createClass(Logger, [{
key: 'judgePath',
value: function judgePath(pathStr) {
if (!fs.existsSync(pathStr)) fs.mkdirSync(pathStr);
}
}, {
key: '_init',
value: function _init() {
log4js.configure(this.configure);
}
}, {
key: 'logger',
value: function logger(name) {
return log4js.getLogger(name);
}
}, {
key: 'use',
value: function use(level) {
this.app.use(log4js.connectLogger(log4js.getLogger('logInfo', {
level: levels[level] || levels.info,
format: function format(req, res, fmt) {
return fmt(':date :remote-addr :method :url :status') + ' ' + res.responseTime + 'ms';
}
})));
}
}]);
return Logger;
}();
module.exports = function (app) {
return new Logger(app);
};
;