added getBufferedLogger function.
This function should be useful when you need to log during async parallel operations, without having a mess in logs. For example when you walk asynchronously a directory and you want logs to be grouped by file. It returns the same getLogger() object but messages are stored internally and sent to appenders only when you call the flush() method on it.
This commit is contained in:
@@ -70,6 +70,29 @@ function hasLogger(logger) {
|
||||
}
|
||||
|
||||
|
||||
function getBufferedLogger(categoryName) {
|
||||
var base_logger = getLogger(categoryName);
|
||||
var logger = {};
|
||||
logger.temp = [];
|
||||
logger.base_logger = base_logger;
|
||||
logger.flush = function () {
|
||||
for (var i = 0; i < logger.temp.length; i++) {
|
||||
var log = logger.temp[i];
|
||||
logger.base_logger[log.level](log.message);
|
||||
delete logger.temp[i];
|
||||
}
|
||||
};
|
||||
logger.trace = function (message) { logger.temp.push({level: 'trace', message: message}); }
|
||||
logger.debug = function (message) { logger.temp.push({level: 'debug', message: message}); }
|
||||
logger.info = function (message) { logger.temp.push({level: 'info', message: message}); }
|
||||
logger.warn = function (message) { logger.temp.push({level: 'warn', message: message}); }
|
||||
logger.error = function (message) { logger.temp.push({level: 'error', message: message}); }
|
||||
logger.fatal = function (message) { logger.temp.push({level: 'fatal', message: message}); }
|
||||
|
||||
return logger;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get a logger instance. Instance is cached on categoryName level.
|
||||
* @param {String} categoryName name of category to log to.
|
||||
|
||||
Reference in New Issue
Block a user