Clearer iteration through keys

- We needed to closure the variable `levels` and this is cleaner
This commit is contained in:
Esteban Ordano 2014-09-01 17:43:02 -03:00
commit 4415f1c862

View file

@ -14,26 +14,24 @@ var levels = {
'fatal': 5 'fatal': 5
}; };
for (_level in levels) { Object.keys(levels).forEach(function(level) {
(function(level) { Logger.prototype[level] = function() {
Logger.prototype[level] = function() { if (levels[level] >= levels[this.level]) {
if (levels[level] >= levels[this.level]) { var str = '[' + level + '] ' + this.name + ': ' + arguments[0],
var str = '[' + level + '] ' + this.name + ': ' + arguments[0], extraArgs,
extraArgs, extraArgs = [].slice.call(arguments, 1);
extraArgs = [].slice.call(arguments, 1); if (console[level]) {
if (console[level]) { extraArgs.unshift(str);
extraArgs.unshift(str); console[level].apply(console, extraArgs);
console[level].apply(console, extraArgs); } else {
} else { if (extraArgs.length) {
if (extraArgs.length) { str += JSON.stringify(extraArgs);
str += JSON.stringify(extraArgs);
}
console.log(str);
} }
console.log(str);
} }
}; }
})(_level); };
} });
Logger.prototype.setLevel = function(level) { Logger.prototype.setLevel = function(level) {
this.level = level; this.level = level;