浏览代码

log: properly log to the set level

JC Brand 5 年之前
父节点
当前提交
2b213d0561
共有 1 个文件被更改,包括 13 次插入5 次删除
  1. 13 5
      src/headless/log.js

+ 13 - 5
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);
         }
     },