diff --git a/src/logger.js b/src/logger.js index f428049c30..b4c6f6b2ad 100644 --- a/src/logger.js +++ b/src/logger.js @@ -10,31 +10,15 @@ if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') { } let currentLogsFolder = LOGS_FOLDER; -var currentTransports; -const logger = new winston.Logger(); - -export function configureLogger({logsFolder}) { - logsFolder = logsFolder || currentLogsFolder; - - if (!path.isAbsolute(logsFolder)) { - logsFolder = path.resolve(process.cwd(), logsFolder); - } - if (!fs.existsSync(logsFolder)) { - fs.mkdirSync(logsFolder); - } - currentLogsFolder = logsFolder; - - currentTransports = [ - new (winston.transports.Console)({ - colorize: true, - level: process.env.VERBOSE ? 'verbose': 'info' - }), +function generateTransports() { + let level = process.env.VERBOSE ? 'verbose': 'info'; + let transports = [ new (DailyRotateFile)({ filename: 'parse-server.info', dirname: currentLogsFolder, name: 'parse-server', - level: process.env.VERBOSE ? 'verbose': 'info' + level: level }), new (DailyRotateFile)({ filename: 'parse-server.err', @@ -43,9 +27,30 @@ export function configureLogger({logsFolder}) { level: 'error' }) ] + if (!process.env.TESTING) { + transports = [new (winston.transports.Console)({ + colorize: true, + level:level + })].concat(transports); + } + return transports; +} + +const logger = new winston.Logger(); + +export function configureLogger({logsFolder}) { + logsFolder = logsFolder || currentLogsFolder; + + if (!path.isAbsolute(logsFolder)) { + logsFolder = path.resolve(process.cwd(), logsFolder); + } + if (!fs.existsSync(logsFolder)) { + fs.mkdirSync(logsFolder); + } + currentLogsFolder = logsFolder; logger.configure({ - transports: currentTransports + transports: generateTransports() }) } @@ -53,34 +58,19 @@ configureLogger({logsFolder: LOGS_FOLDER}); export function addGroup(groupName) { let level = process.env.VERBOSE ? 'verbose': 'info'; + + let transports = generateTransports().concat(new (DailyRotateFile)({ + filename: groupName, + dirname: currentLogsFolder, + name: groupName, + level: level + })); + winston.loggers.add(groupName, { - transports: [ - new (winston.transports.Console)({ - colorize: true, - level: level - }), - new (DailyRotateFile)({ - filename: groupName, - dirname: currentLogsFolder, - name: groupName, - level: level - }), - new (DailyRotateFile)({ - filename: 'parse-server.info', - name: 'parse-server', - dirname: currentLogsFolder, - level: level - }), - new (DailyRotateFile)({ - filename: 'parse-server.err', - dirname: currentLogsFolder, - name: 'parse-server-error', - level: 'error' - }) - ] + transports: transports }); return winston.loggers.get(groupName); } export { logger }; -export default winston; +export default logger;