(function () { 'use strict'; var ansi = { 'reset': 'colors: black', 'bold': 'font-weight: bold', 'italic': 'font-style: italic', 'underline': 'text-decoration: underline', 'black': 'color: #000', 'red': 'color: red', 'green': 'color: green', 'yellow': 'color: yellow', 'blue': 'color: blue', 'magenta': 'color: magenta', 'cyan': 'color: cyan', 'white': 'color: white' }; var enabled = true; var serialize = function (args) { var string = ''; args.forEach(function (value) { string += ' '; if (typeof value === 'string') { string += value; } else { string += JSON.stringify(value, null, 4); } }); return string; }; var createLogger = function (name, color) { var prefix = '%c' + '[' + name + ']' + '%c'; var style = color ? ansi[color] ? ansi[color] : color : ''; var log = function () { if (! enabled) return; var args = __slice.call(arguments, 0); var contents = serialize(args); console.log(prefix + contents, style, ansi.reset); }; log.warn = color === 'red' ? log : createLogger(name, 'red'); return log; }; createLogger.enable = function() { enabled = true; }; createLogger.disable = function () { enabled = false; }; createLogger.colors = ansi; if (typeof module !== 'undefined') { module.exports = createLogger; } this.Log = createLogger; }).call(this);