]> git.r.bdr.sh - rbdr/cologne/blobdiff - lib/cobalt.js
Better formatting, and include extendLog
[rbdr/cologne] / lib / cobalt.js
index 58a305c156a4306b4b19520ca2544e23a73de6b5..f3effcdcd76b4953b19e6247a85bdd702f20be83 100644 (file)
 
       // Builds a Cobalt Log Object
       buildLog : function (item, level) {
 
       // Builds a Cobalt Log Object
       buildLog : function (item, level) {
-        var co = this, oldItem;
+        var co = this, oldItem, logObject = {};
+
+        if (typeof item === "undefined" || item === null || !item._cobaltLog) {
+          logObject.message = item;
+          logObject._cobaltLog = true;
+          logObject._from = co.from;
+          logObject._level = level || 6;
+          logObject._levelString = co._levelString(logObject._level);
+          logObject._version = co.version;
+          logObject._timestamp = co.now();
+          logObject._indentLevel = co.currentIndent;
+          logObject._color = co.currentColor;
+          logObject._separator = false;
+          return logObject;
+        }
 
 
-        if (!item._cobaltLog) {
-          if (typeof item !== "object") {
-            item = {message : item.toString() };
-          } else {
-            item.message = Cobalt.stringify(item);
-          }
+        return item;
+      },
+
+      extendLog : function (extendingObject) {
+        var co = this, logObject,
+            property;
 
 
-          item._cobaltLog = true;
-          item._from = co.from;
-          item._level = item._level || level || 7;
-          item._levelString = co._levelString(item._level);
-          item._version = co.version;
-          item._timestamp = co.now();
-          item._indentLevel = co.currentIndent;
-          item._color = co.currentColor;
+        logObject = co.buildLog(undefined, 6);
+        extendingObject = extendingObject || {};
+
+        for (property in extendingObject) {
+          if (extendingObject.hasOwnProperty(property)) {
+            logObject[property] = extendingObject[property];
+          }
         }
 
         }
 
-        return item;
+        return logObject;
       },
 
       buildSeparator : function (type) {
       },
 
       buildSeparator : function (type) {
 
       // Returns the current time in microseconds.
       now : function () {
 
       // Returns the current time in microseconds.
       now : function () {
-        this.constructor.now();
+        if (typeof performance !== 'undefined' && performance.timing) {
+          return performance.timing.navigationStart + performance.now();
+        }
+
+        if (typeof Microtime !== 'undefined') {
+          return Microtime.nowDouble() * 1000;
+        }
+
+        return Date.now();
       },
 
       _levelString : function (level) {
       },
 
       _levelString : function (level) {