rsnext/examples/custom-server-actionhero/config/logger.js
2020-05-18 15:24:37 -04:00

63 lines
1.5 KiB
JavaScript

const fs = require('fs')
const cluster = require('cluster')
exports['default'] = {
logger: (api) => {
let logger = { transports: [] }
// console logger
if (cluster.isMaster) {
logger.transports.push(function (api, winston) {
return new winston.transports.Console({
colorize: true,
level: 'info',
timestamp: function () {
return api.id + ' @ ' + new Date().toISOString()
},
})
})
}
// file logger
logger.transports.push(function (api, winston) {
if (api.config.general.paths.log.length === 1) {
const logDirectory = api.config.general.paths.log[0]
try {
fs.mkdirSync(logDirectory)
} catch (e) {
if (e.code !== 'EEXIST') {
throw new Error('Cannot create log directory @ ' + logDirectory)
}
}
}
return new winston.transports.File({
filename:
api.config.general.paths.log[0] + '/' + api.pids.title + '.log',
level: 'info',
timestamp: function () {
return api.id + ' @ ' + new Date().toISOString()
},
})
})
// the maximum length of param to log (we will truncate)
logger.maxLogStringLength = 100
// you can optionally set custom log levels
// logger.levels = {good: 0, bad: 1};
// you can optionally set custom log colors
// logger.colors = {good: 'blue', bad: 'red'};
return logger
},
}
exports.test = {
logger: (api) => {
return {
transports: null,
}
},
}