Files
kami-parse-server/src/logger.js
2016-03-28 20:16:58 -04:00

87 lines
2.1 KiB
JavaScript

import winston from 'winston';
import fs from 'fs';
import path from 'path';
import DailyRotateFile from 'winston-daily-rotate-file';
let LOGS_FOLDER = './logs/';
if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') {
LOGS_FOLDER = './test_logs/'
}
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'
}),
new (DailyRotateFile)({
filename: 'parse-server.info',
dirname: currentLogsFolder,
name: 'parse-server',
level: process.env.VERBOSE ? 'verbose': 'info'
}),
new (DailyRotateFile)({
filename: 'parse-server.err',
dirname: currentLogsFolder,
name: 'parse-server-error',
level: 'error'
})
]
logger.configure({
transports: currentTransports
})
}
configureLogger({logsFolder: LOGS_FOLDER});
export function addGroup(groupName) {
let level = process.env.VERBOSE ? 'verbose': 'info';
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'
})
]
});
return winston.loggers.get(groupName);
}
export { logger };
export default winston;