|
|
|
const _ = require('lodash')
|
|
|
|
const cluster = require('cluster')
|
|
|
|
const winston = require('winston')
|
|
|
|
|
|
|
|
/* global WIKI */
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
loggers: {},
|
|
|
|
init() {
|
|
|
|
let logger = winston.createLogger({
|
|
|
|
level: WIKI.config.logLevel,
|
|
|
|
format: winston.format.combine(
|
|
|
|
winston.format.colorize(),
|
|
|
|
winston.format.label({ label: (cluster.isMaster) ? 'MASTER' : `WORKER-${cluster.worker.id}` }),
|
|
|
|
winston.format.timestamp(),
|
|
|
|
winston.format.printf(info => `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`)
|
|
|
|
)
|
|
|
|
})
|
|
|
|
|
|
|
|
_.forOwn(_.omitBy(WIKI.config.logging.loggers, s => s.enabled === false), (loggerConfig, loggerKey) => {
|
|
|
|
let loggerModule = require(`../modules/logging/${loggerKey}`)
|
|
|
|
loggerModule.init(logger, loggerConfig)
|
|
|
|
this.loggers[logger.key] = loggerModule
|
|
|
|
})
|
|
|
|
|
|
|
|
return logger
|
|
|
|
}
|
|
|
|
}
|