87 lines
2.1 KiB
JavaScript
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;
|