]> git.r.bdr.sh - rbdr/cologne/blobdiff - lib/loggers/console.js
Better formatting, and include extendLog
[rbdr/cologne] / lib / loggers / console.js
index 3dc4b1df76f89abcde975b5eeeb89f4e15f987ff..c8e3036bc8497ca44d8a5abaf592bdbe348b4c22 100644 (file)
@@ -16,7 +16,7 @@
 
   Cobalt.Logger.JsConsole = Class(Cobalt.Logger, 'JsConsole')({
     prototype : {
-      console : console,
+      console : null,
       formatterOpts : {},
 
       init : function (config) {
             logger[property] = config[property];
           }
         }
+
+        if (!logger.console) {
+          logger.console = console;
+        }
       },
 
-      log : function (logObject) {
-        var message;
+      log : function () {
+        var i, message = [], severity;
 
-        message = this.format(logObject);
+        for (i = 0; i < arguments.length; i++) {
+          // We're not formatting objects for now.
 
-        switch (logObject._level){
+          if (!arguments[i].__skipConsole && !arguments[i].message.__skipConsole) {
+            if (typeof arguments[i].message === 'object') {
+              message.push(arguments[i].message);
+            } else {
+              message.push(this.format(arguments[i]));
+            }
+            if (!severity) {
+              severity = arguments[i]._level
+            }
+          }
+        }
+
+        switch (severity){
           case 0:
           case 1:
           case 2:
           case 3:
-            this.console.error(message);
+            this.console.error.apply(this.console, message);
             break;
           case 4:
-            this.console.warn(message);
+            this.console.warn.apply(this.console, message);
             break;
           case 5:
           case 6:
-            this.console.info(message);
+            this.console.info.apply(this.console, message);
             break;
           case 7:
           default:
-            this.console.log(message);
+            this.console.log.apply(this.console, message);
             break;
         }
       },
           return this.formatter.format(logObject, this.formatterOpts);
         }
 
-        return logObject;
+        return logObject.message;
       }
     }
   });
 
+  if (Cobalt.Logger.JsConsole.__objectSpy) {
+    Cobalt.Logger.JsConsole.__objectSpy.destroy();
+  }
+
   if (typeof require === 'function') {
     global.JsConsole = Cobalt.Logger.JsConsole;
   } else {