-(function (global) {
- var Module;
+Module(Cobalt.Formatter, 'Token')({
+ formatString : "{{message}}",
+ replaceRule : /{{(.*?)}}/g,
+ separatorLength : 60,
+ isoDate : true,
+ separatorType : "-",
+ format : function (logObject, opts){
+ var indent, indentSize,
+ separatorLength, separatorType,
+ output, property;
+ indentSize = logObject._indentLevel || 0;
- // Load up dependencies
- if (typeof require === 'function') {
- var Ne = require('neon');
- Module = Ne.Module;
- } else {
- Module = global.Module;
- }
-
- var Cobalt = {};
- Module(Cobalt, 'Formatter')({});
+ // Extend opts
+ if (opts) {
+ for (property in opts) {
+ if (opts.hasOwnProperty(property)) {
+ this[property] = opts[property];
+ }
+ }
+ }
- Cobalt.Formatter.Token = Module(Cobalt.Formatter, 'Token')({
- formatString : "{{message}}",
- replaceRule : /{{(.*?)}}/g,
- separatorLength : 60,
- separatorType : "-",
- format : function (logObject, opts){
- var indent, indentSize,
- separatorLength, separatorType,
- output;
- indentSize = logObject._indentLevel || 0;
+ indent = Array(indentSize + 1).join(' ');
- indent = Array(indentSize + 1).join(' ');
+ if (logObject._separator) {
+ separatorLength = logObject._separatorLength || this.separatorLength;
+ separatorType = logObject._separatorType || this.separatorType;
+ output = indent + Array(separatorLength - indentSize + 1).join(separatorType);
+ } else {
+ output = indent + this.parseFormatString(logObject, this.formatString);
+ }
- if (logObject._separator) {
- separatorLength = logObject._separatorLength || this.separatorLength;
- separatorType = logObject._separatorType || this.separatorType;
- output = indent + Array(separatorLength - indentSize + 1).join(separatorType);
- } else {
- output = indent + this.parseFormatString(logObject, opts.formatString);
- }
+ if (this.ansiColor) {
+ output = this.colorize(logObject._level, output);
+ }
- if (opts.ansiColor) {
- output = this.colorize(logObject._level, output);
- }
+ return output;
+ },
- return output;
- },
+ parseFormatString : function (logObject, formatString) {
+ var resultString = '';
+ if (typeof formatString === 'undefined') {
+ formatString = this.formatString;
+ }
- parseFormatString : function (logObject, formatString) {
- var resultString = '';
- if (typeof formatString === 'undefined') {
- formatString = this.formatString;
+ 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));
- resultString = formatString.replace(this.replaceRule, function(match, paren){
- return logObject[paren] || "-";
- });
+ return resultString;
+ },
- return resultString;
- },
-
- colorize : function (level, message) {
- switch(level) {
- case 0:
- case 1:
- case 2:
- case 3:
- return message.red;
- case 4:
- return message.yellow;
- case 5:
- case 6:
- return message.blue;
- default:
- return message;
- }
+ colorize : function (level, message) {
+ switch(level) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ return message.red;
+ case 4:
+ return message.yellow;
+ case 5:
+ case 6:
+ return message.blue;
+ default:
+ return message;
}
- });
-
- if (typeof require === 'function') {
- global.Token = Cobalt.Formatter.Token;
- } else {
- global.Cobalt.Formatter.Token = Cobalt.Formatter.Token;
}
-}(typeof window !== 'undefined' ? window : (typeof exports !== 'undefined' ? exports : self)));
+});