|
(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); |
|
|