diff --git a/src/headless/log.js b/src/headless/log.js index 7d8493bce..eb0f62900 100644 --- a/src/headless/log.js +++ b/src/headless/log.js @@ -1,5 +1,12 @@ import { get, isElement } from 'lodash'; +const LEVELS = { + 'debug': 0, + 'info': 1, + 'warn': 2, + 'error': 3, + 'fatal': 4 +} const logger = Object.assign({ 'debug': get(console, 'log') ? console.log.bind(console) : function noop () {}, @@ -20,7 +27,7 @@ const log = { * @method log#setLogLevel * @param { integer } level - The loglevel which allows for filtering of log messages */ - setLogLevel(level) { + setLogLevel (level) { if (!['debug', 'info', 'warn', 'error', 'fatal'].includes(level)) { throw new Error(`Invalid loglevel: ${level}`); } @@ -38,6 +45,9 @@ const log = { * @param { integer } level - The loglevel which allows for filtering of log messages */ log (message, level, style='') { + if (LEVELS[level] < LEVELS[this.loglevel]) { + return; + } if (level === 'error' || level === 'fatal') { style = style || 'color: maroon'; } else if (level === 'debug') { @@ -57,10 +67,8 @@ const log = { } else if (level === 'fatal') { logger.error(`${prefix} FATAL: ${message}`, style); } else if (level === 'debug') { - if (this.loglevel === 'debug') { - logger.debug(`${prefix} ${(new Date()).toISOString()} DEBUG: ${message}`, style); - } - } else if (this.loglevel === 'info') { + logger.debug(`${prefix} ${(new Date()).toISOString()} DEBUG: ${message}`, style); + } else { logger.info(`${prefix} ${(new Date()).toISOString()} INFO: ${message}`, style); } },