Log objects rather than JSON strings and option for single line logs (#2028)

* Log objects rather than JSON strings and option for single line logs

This reverts commit fcd914bdfd.

* Better password stripping tests
This commit is contained in:
Sen Palanisami
2016-07-15 13:18:50 -07:00
committed by Florent Vilmart
parent 514095dc35
commit 7d234e054b
8 changed files with 112 additions and 51 deletions

View File

@@ -10,36 +10,45 @@ if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') {
}
LOGS_FOLDER = process.env.PARSE_SERVER_LOGS_FOLDER || LOGS_FOLDER;
const JSON_LOGS = process.env.JSON_LOGS || false;
let currentLogsFolder = LOGS_FOLDER;
function generateTransports(level) {
function generateTransports(level, options = {}) {
let transports = [
new (DailyRotateFile)({
filename: 'parse-server.info',
dirname: currentLogsFolder,
name: 'parse-server',
level: level
}),
new (DailyRotateFile)({
filename: 'parse-server.err',
dirname: currentLogsFolder,
name: 'parse-server-error',
level: 'error'
})
]
new (DailyRotateFile)(
Object.assign({
filename: 'parse-server.info',
dirname: currentLogsFolder,
name: 'parse-server',
level: level
}, options)
),
new (DailyRotateFile)(
Object.assign({
filename: 'parse-server.err',
dirname: currentLogsFolder,
name: 'parse-server-error',
level: 'error'
}
), options)
];
if (!process.env.TESTING || process.env.VERBOSE) {
transports = [new (winston.transports.Console)({
colorize: true,
level:level
})].concat(transports);
transports = [
new (winston.transports.Console)(
Object.assign({
colorize: true,
level: level
}, options)
)
].concat(transports);
}
return transports;
}
const logger = new winston.Logger();
export function configureLogger({logsFolder, level = winston.level}) {
export function configureLogger({ logsFolder, jsonLogs, level = winston.level }) {
winston.level = level;
logsFolder = logsFolder || currentLogsFolder;
@@ -53,16 +62,22 @@ export function configureLogger({logsFolder, level = winston.level}) {
}
currentLogsFolder = logsFolder;
const options = {};
if (jsonLogs) {
options.json = true;
options.stringify = true;
}
const transports = generateTransports(level, options);
logger.configure({
transports: generateTransports(level)
transports: transports
})
}
configureLogger({logsFolder: LOGS_FOLDER});
configureLogger({ logsFolder: LOGS_FOLDER, jsonLogs: JSON_LOGS });
export function addGroup(groupName) {
let level = winston.level;
let transports = generateTransports().concat(new (DailyRotateFile)({
let transports = generateTransports().concat(new (DailyRotateFile)({
filename: groupName,
dirname: currentLogsFolder,
name: groupName,