| ; | |
| var ansi = { | |
| 'reset': 0, | |
| 'bold': 1, | |
| 'italic': 3, | |
| 'underline': 4, | |
| 'black': 30, | |
| 'red': 31, | |
| 'green': 32, | |
| 'yellow': 33, | |
| 'blue': 34, | |
| 'magenta': 35, | |
| 'cyan': 36, | |
| 'white': 37, | |
| 'bright black': 90, | |
| 'bright red': 91, | |
| 'bright green': 92, | |
| 'bright yellow': 93, | |
| 'bright blue': 94, | |
| 'bright magenta': 95, | |
| 'bright cyan': 96, | |
| 'bright white': 97, | |
| }; | |
| for (var key in ansi) { | |
| if (! ansi.hasOwnProperty(key)) continue; | |
| ansi[key] = '\u001b[' + ansi[key] + 'm'; | |
| } | |
| var enabled = true; | |
| var createLogger = function (name, color) { | |
| var prefix, log; | |
| if (! color) color = 'reset'; | |
| prefix = ansi[color] + '[' + name + ']' + ansi.reset; | |
| log = function () { | |
| if (! enabled) return; | |
| var args = Array.prototype.slice.call(arguments, 0); | |
| args.unshift(prefix); | |
| console.log.apply(console, args); | |
| }; | |
| log.warn = color === 'red' ? log : createLogger(name, 'red'); | |
| return log; | |
| }; | |
| createLogger.enable = function() { | |
| enabled = true; | |
| }; | |
| createLogger.disable = function () { | |
| enabled = false; | |
| }; | |
| createLogger.colors = ansi; | |
| module.exports = createLogger; | |