]> git.r.bdr.sh - rbdr/cologne/commitdiff
Makes formatter truly extensible, adds isoDate opt
authorBen Beltran <redacted>
Fri, 9 Jan 2015 16:23:41 +0000 (10:23 -0600)
committerBen Beltran <redacted>
Fri, 9 Jan 2015 16:23:41 +0000 (10:23 -0600)
lib/formatters/token.js

index 4fa7d570aaa0c27fecf8ae2e8028094a31b82d96..f3afba206fd8c862a4777796a522633b1bbf6289 100644 (file)
@@ -2,13 +2,23 @@ Module(Cobalt.Formatter, 'Token')({
   formatString : "{{message}}",
   replaceRule : /{{(.*?)}}/g,
   separatorLength : 60,
+  isoDate : true,
   separatorType : "-",
   format : function (logObject, opts){
     var indent, indentSize,
         separatorLength, separatorType,
-        output;
+        output, property;
     indentSize = logObject._indentLevel || 0;
 
+    // Extend opts
+    if (opts) {
+      for (property in opts) {
+        if (opts.hasOwnProperty(property)) {
+          this[property] = opts[property];
+        }
+      }
+    }
+
     indent = Array(indentSize + 1).join(' ');
 
     if (logObject._separator) {
@@ -16,10 +26,10 @@ Module(Cobalt.Formatter, 'Token')({
       separatorType = logObject._separatorType || this.separatorType;
       output = indent + Array(separatorLength - indentSize + 1).join(separatorType);
     } else {
-      output = indent + this.parseFormatString(logObject, opts.formatString);
+      output = indent + this.parseFormatString(logObject, this.formatString);
     }
 
-    if (opts.ansiColor) {
+    if (this.ansiColor) {
       output = this.colorize(logObject._level, output);
     }
 
@@ -33,8 +43,13 @@ Module(Cobalt.Formatter, 'Token')({
     }
 
     resultString = formatString.replace(this.replaceRule, function(match, paren){
+      var date;
+      if (paren === "_timestamp" && this.isoDate) {
+        date = new Date(logObject[paren]);
+        return date.toISOString();
+      }
       return logObject[paren] || "-";
-    });
+    }.bind(this));
 
     return resultString;
   },