-
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathindex.js
41 lines (32 loc) · 1.1 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
'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;