rsnext/examples/custom-server-actionhero/config/logger.js

64 lines
1.5 KiB
JavaScript
Raw Normal View History

2018-02-27 13:16:17 +01:00
const fs = require('fs')
const cluster = require('cluster')
exports['default'] = {
2020-05-18 21:24:37 +02:00
logger: (api) => {
let logger = { transports: [] }
2018-02-27 13:16:17 +01:00
// console logger
if (cluster.isMaster) {
2020-05-18 21:24:37 +02:00
logger.transports.push(function (api, winston) {
return new winston.transports.Console({
2018-02-27 13:16:17 +01:00
colorize: true,
level: 'info',
2020-05-18 21:24:37 +02:00
timestamp: function () {
return api.id + ' @ ' + new Date().toISOString()
},
2018-02-27 13:16:17 +01:00
})
})
}
// file logger
2020-05-18 21:24:37 +02:00
logger.transports.push(function (api, winston) {
2018-02-27 13:16:17 +01:00
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)
2018-02-27 13:16:17 +01:00
}
}
}
return new winston.transports.File({
filename:
api.config.general.paths.log[0] + '/' + api.pids.title + '.log',
2018-02-27 13:16:17 +01:00
level: 'info',
2020-05-18 21:24:37 +02:00
timestamp: function () {
return api.id + ' @ ' + new Date().toISOString()
},
2018-02-27 13:16:17 +01:00
})
})
// 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
},
2018-02-27 13:16:17 +01:00
}
exports.test = {
2020-05-18 21:24:37 +02:00
logger: (api) => {
2018-02-27 13:16:17 +01:00
return {
transports: null,
2018-02-27 13:16:17 +01:00
}
},
2018-02-27 13:16:17 +01:00
}