]> git.r.bdr.sh - rbdr/cologne/blobdiff - lib/loggers/console.js
I don't know how git works (massive commit)
[rbdr/cologne] / lib / loggers / console.js
diff --git a/lib/loggers/console.js b/lib/loggers/console.js
new file mode 100644 (file)
index 0000000..3dc4b1d
--- /dev/null
@@ -0,0 +1,76 @@
+(function (global) {
+  var Module, Class;
+
+  // Load up dependencies
+  if (typeof require === 'function') {
+    var Ne = require('neon');
+    Module = Ne.Module;
+    Class = Ne.Class;
+  } else {
+    Module = global.Module;
+    Class = global.Class;
+  }
+
+  var Cobalt = {};
+  Module(Cobalt, 'Logger')({});
+
+  Cobalt.Logger.JsConsole = Class(Cobalt.Logger, 'JsConsole')({
+    prototype : {
+      console : console,
+      formatterOpts : {},
+
+      init : function (config) {
+        var logger = this,
+            property;
+
+        if (config) {
+          for (property in config) {
+            logger[property] = config[property];
+          }
+        }
+      },
+
+      log : function (logObject) {
+        var message;
+
+        message = this.format(logObject);
+
+        switch (logObject._level){
+          case 0:
+          case 1:
+          case 2:
+          case 3:
+            this.console.error(message);
+            break;
+          case 4:
+            this.console.warn(message);
+            break;
+          case 5:
+          case 6:
+            this.console.info(message);
+            break;
+          case 7:
+          default:
+            this.console.log(message);
+            break;
+        }
+      },
+
+      format : function (logObject) {
+        // Usually what you want to do here is format. Preferably using
+        // someone inside Cobalt.Formatter
+        if (this.formatter) {
+          return this.formatter.format(logObject, this.formatterOpts);
+        }
+
+        return logObject;
+      }
+    }
+  });
+
+  if (typeof require === 'function') {
+    global.JsConsole = Cobalt.Logger.JsConsole;
+  } else {
+    global.Cobalt.Logger.JsConsole = Cobalt.Logger.JsConsole;
+  }
+}(typeof window !== 'undefined' ? window : (typeof exports !== 'undefined' ? exports : self)));