logger.js 874 B

12345678910111213141516171819202122232425262728
  1. const _ = require('lodash')
  2. const cluster = require('cluster')
  3. const winston = require('winston')
  4. /* global WIKI */
  5. module.exports = {
  6. loggers: {},
  7. init() {
  8. let logger = winston.createLogger({
  9. level: WIKI.config.logLevel,
  10. format: winston.format.combine(
  11. winston.format.colorize(),
  12. winston.format.label({ label: (cluster.isMaster) ? 'MASTER' : `WORKER-${cluster.worker.id}` }),
  13. winston.format.timestamp(),
  14. winston.format.printf(info => `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`)
  15. )
  16. })
  17. _.forOwn(_.omitBy(WIKI.config.logging.loggers, s => s.enabled === false), (loggerConfig, loggerKey) => {
  18. let loggerModule = require(`../modules/logging/${loggerKey}`)
  19. loggerModule.init(logger, loggerConfig)
  20. this.loggers[logger.key] = loggerModule
  21. })
  22. return logger
  23. }
  24. }