All files logger.js

61.11% Statements 11/18
0% Branches 0/4
57.14% Functions 4/7
56.25% Lines 9/16
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  1x     1x     1x                                       44x 37x     5x 5x   1x 1x  
 
var levels = ['debug', 'info', 'warn', 'log', 'error']
class Logger {
  constructor(level) {
    this._level = level
  }
  setLevel(level) {
    this._level = level
  }
  levelIndex(level) {
    return levels.indexOf(level)
  }
  shouldLog(level) {
    return this.levelIndex(level) >= this.levelIndex(this._level)
  }
  logIt(level, ...args) {
    if (this.shouldLog(level)) {
      if (console[level]) {
        console[level](...args)
      } else {
        console.log(...args)
      }
    }
  }
}
 
function makeLogger(level) {
  return function(...args) {
    this.logIt(level, ...args)
  }
}
for (var level of levels) {
  Logger.prototype[level] = makeLogger(level)
}
Logger.prototype.levels = levels
module.exports = new Logger('info')