File size: 1,529 Bytes
5fae594 |
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
(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);
|