1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/examples/custom-server-actionhero/config/logger.js

66 lines
1.5 KiB
JavaScript
Raw Normal View History

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