wiki/server/core/logger.js

41 lines
1.1 KiB
JavaScript
Raw Normal View History

2017-12-23 23:34:47 -06:00
const _ = require('lodash')
const cluster = require('cluster')
2017-12-23 23:34:47 -06:00
const fs = require('fs-extra')
const path = require('path')
2017-03-28 19:19:01 -05:00
/* global WIKI */
2017-07-29 16:33:08 -05:00
module.exports = {
2017-12-23 23:34:47 -06:00
loggers: {},
2017-07-29 16:33:08 -05:00
init() {
let winston = require('winston')
2017-03-28 19:19:01 -05:00
2017-07-29 16:33:08 -05:00
let logger = new (winston.Logger)({
level: WIKI.config.logLevel,
2017-12-23 23:34:47 -06:00
transports: []
2017-07-29 16:33:08 -05:00
})
2017-04-28 17:46:27 -05:00
2017-07-29 16:33:08 -05:00
logger.filters.push((level, msg) => {
let processName = (cluster.isMaster) ? 'MASTER' : `WORKER-${cluster.worker.id}`
return '[' + processName + '] ' + msg
})
2017-03-28 19:19:01 -05:00
_.forOwn(_.omitBy(WIKI.config.logging.loggers, s => s.enabled === false), (loggerConfig, loggerKey) => {
let loggerModule = require(`../modules/logging/${loggerKey}`)
2017-12-23 23:34:47 -06:00
loggerModule.init(logger, loggerConfig)
fs.readFile(path.join(WIKI.ROOTPATH, `assets/svg/auth-icon-${loggerKey}.svg`), 'utf8').then(iconData => {
2017-12-23 23:34:47 -06:00
logger.icon = iconData
}).catch(err => {
if (err.code === 'ENOENT') {
logger.icon = '[missing icon]'
} else {
logger.error(err)
}
})
this.loggers[logger.key] = loggerModule
})
2017-03-29 20:49:30 -05:00
2017-07-29 16:33:08 -05:00
return logger
}
2017-03-28 19:19:01 -05:00
}