forked from public/fvtt-cthulhu-eternal
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
var format = require('util').format;
|
|
|
|
var sparkles = require('sparkles');
|
|
var legacySparkles = require('sparkles/legacy');
|
|
|
|
var levels = ['debug', 'info', 'warn', 'error'];
|
|
|
|
function getLogger(namespace) {
|
|
var logger = sparkles(namespace);
|
|
var deprecatedLogger = legacySparkles(namespace);
|
|
|
|
levels.forEach(function (level) {
|
|
logger[level] = makeLogLevel(logger, level);
|
|
|
|
// Wire up listeners for every level on the deprecated namespace
|
|
// If anything gets emitted on this namespace, we'll emit the
|
|
// `deprecated` event and re-emit the event on the new logger
|
|
deprecatedLogger.on(level, function () {
|
|
logger.emit('deprecated');
|
|
var args = Array.prototype.slice.call(arguments);
|
|
logger[level].apply(logger, args);
|
|
});
|
|
});
|
|
|
|
return logger;
|
|
}
|
|
|
|
function makeLogLevel(self, level) {
|
|
return function (msg) {
|
|
if (typeof msg === 'string') {
|
|
self.emit(level, format.apply(null, arguments));
|
|
} else {
|
|
var args = Array.prototype.slice.call(arguments);
|
|
self.emit.apply(self, [level].concat(args));
|
|
}
|
|
};
|
|
}
|
|
|
|
module.exports = getLogger;
|