UNPKG

autolog4j

Version:

> use

67 lines (58 loc) 1.46 kB
'use strict'; const log4js = require('log4js'); const fs = require('fs'); let 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, } const 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', } class Logger{ constructor(app) { this.app = app; this.configure = app.get('log4js') || configureLog4js; this._init(); } judgePath(pathStr) { if (!fs.existsSync(pathStr)) fs.mkdirSync(pathStr); } _init() { log4js.configure(this.configure); } logger(name) { return log4js.getLogger(name); } use(level) { this.app.use(log4js.connectLogger(log4js.getLogger('logInfo', { level: levels[level] || levels.info, format: (req, res, fmt) => { return `${fmt(':date :remote-addr :method :url :status')} ${res.responseTime}ms`; } }))); } } module.exports = (app) => { return new Logger(app); }