X-Git-Url: https://git.r.bdr.sh/rbdr/cologne/blobdiff_plain/95239994bffa025ebd0d6dc98b34f211fb7c8cc1..f7ccbe7f42f69590f2a1c83d227bf23b503decfd:/lib/cobalt.js

diff --git a/lib/cobalt.js b/lib/cobalt.js
index 771c9c7..5ae39f2 100644
--- a/lib/cobalt.js
+++ b/lib/cobalt.js
@@ -28,6 +28,18 @@
     Cobalt.Logger.Socket = require('./loggers/socket.js').Socket;
   }
 
+  Cobalt.now = function () {
+    if (typeof performance !== 'undefined') {
+      return performance.timing.navigationStart + performance.now();
+    }
+
+    if (typeof Microtime !== 'undefined') {
+      return Microtime.nowDouble() * 1000;
+    }
+
+    return Date.now();
+  }
+
   Cobalt.Console = Class(Cobalt, 'Console')({
     prototype : {
       from : "Generic Cobalt Logger",
@@ -64,13 +76,16 @@
 
       // Builds a Cobalt Log Object
       buildLog : function (item, level) {
-        var co = this;
+        var co = this, oldItem;
 
         if (!item._cobaltLog) {
           if (typeof item !== "object") {
-            item = { _cobaltLog : true, message : item.toString() };
+            item = {message : item.toString() };
+          } else {
+            item.message = JSON.stringify(item);
           }
 
+          item._cobaltLog = true;
           item._from = co.from;
           item._level = item._level || level || 7;
           item._levelString = co._levelString(item._level);
@@ -99,15 +114,20 @@
       _log : function (severity) {
         var co = this,
             logString,
+            logObjectArray = [],
             i, j;
 
         for (i = 1; i < arguments.length; i++) {
-          logObject = co.buildLog(arguments[i], severity);
-
-          for (j = 0; j < co.loggers.length; j++) {
-            co.loggers[j].log(logObject);
+          if (typeof arguments[i] === 'undefined') {
+            logObjectArray.push(co.buildLog("undefined", severity));
+          } else {
+            logObjectArray.push(co.buildLog(arguments[i], severity));
           }
         }
+
+        for (j = 0; j < co.loggers.length; j++) {
+          co.loggers[j].log.apply(co.loggers[j], logObjectArray);
+        }
       },
 
       log : function () {
@@ -246,6 +266,10 @@
     }
   });
 
+  if (Cobalt.Console.__objectSpy) {
+    Cobalt.Console.__objectSpy.destroy();
+  }
+
   if (typeof require === 'function') {
     global.Formatter = Cobalt.Formatter;
     global.Logger = Cobalt.Logger;