]>
git.r.bdr.sh - rbdr/cologne/blob - lib/cobalt.js
d2d2c13c7fd37b79dc2e4fe4f6299b24f962c779
4 // Load up dependencies
5 if (typeof require
=== 'function') {
6 var Ne
= require('neon');
9 var Microtime
= require('microtime');
11 Module
= global
.Module
;
16 Module(Cobalt
, 'Logger')({});
17 Module(Cobalt
, 'Formatter')({});
19 // Load up loggers + formatters
20 if (typeof require
=== 'function') {
22 Cobalt
.Formatter
.Token
= require('./formatters/token.js').Token
;
25 Cobalt
.Logger
.JsConsole
= require('./loggers/console.js').JsConsole
;
26 Cobalt
.Logger
.Socket
= require('./loggers/socket.js').Socket
;
29 Cobalt
.now = function () {
30 if (typeof performance
!== 'undefined' && performance
.timing
) {
31 return performance
.timing
.navigationStart
+ performance
.now();
34 if (typeof Microtime
!== 'undefined') {
35 return Microtime
.nowDouble() * 1000;
41 // Stringify with circular dereference.
42 Cobalt
.stringify = function (object
) {
43 var cache
= [], stringified
;
44 stringified
= JSON
.stringify(object
, function (key
, value
) {
45 if (typeof value
=== 'object' && value
!== null) {
46 if (cache
.indexOf(value
) !== -1) {
58 Cobalt
.Console
= Class(Cobalt
, 'Console')({
60 from : "Generic Cobalt Logger",
65 separatorLength : 120,
66 currentColor : "black",
68 // Initialize instance of cobalt console
69 // and extend configuration.
70 init : function (config
) {
75 for (property
in config
) {
76 co
[property
] = config
[property
];
81 addLogger : function (logger
) {
82 this.loggers
.push(logger
);
85 removeLogger : function (logger
) {
88 index
= this.loggers
.indexOf(logger
);
89 this.loggers
.splice(index
, 1);
92 // Builds a Cobalt Log Object
93 buildLog : function (item
, level
) {
94 var co
= this, oldItem
, logObject
= {};
96 if (!item
._cobaltLog
) {
97 logObject
.message
= item
;
98 logObject
._cobaltLog
= true;
99 logObject
._from
= co
.from;
100 logObject
._level
= item
._level
|| level
|| 7;
101 logObject
._levelString
= co
._levelString(item
._level
);
102 logObject
._version
= co
.version
;
103 logObject
._timestamp
= co
.now();
104 logObject
._indentLevel
= co
.currentIndent
;
105 logObject
._color
= co
.currentColor
;
112 buildSeparator : function (type
) {
117 _version : co
.version
,
118 _timestamp : co
.now(),
119 _separatorType : type
,
120 _indentLevel : co
.currentIndent
,
121 _color : co
.currentColor
125 _log : function (severity
) {
131 for (i
= 1; i
< arguments
.length
; i
++) {
132 if (typeof arguments
[i
] === 'undefined') {
133 logObjectArray
.push(co
.buildLog("undefined", severity
));
135 logObjectArray
.push(co
.buildLog(arguments
[i
], severity
));
139 for (j
= 0; j
< co
.loggers
.length
; j
++) {
140 co
.loggers
[j
].log
.apply(co
.loggers
[j
], logObjectArray
);
145 this._log
.apply(this, [7].concat([].splice
.call(arguments
, 0)));
149 this._log
.apply(this, [6].concat([].splice
.call(arguments
, 0)));
152 notice : function () {
153 this._log
.apply(this, [5].concat([].splice
.call(arguments
, 0)));
157 this._log
.apply(this, [4].concat([].splice
.call(arguments
, 0)));
160 error : function () {
161 this._log
.apply(this, [3].concat([].splice
.call(arguments
, 0)));
164 separator : function (type
) {
167 co
._log(7, co
.buildSeparator(type
));
170 space : function (lines
) {
174 if (typeof lines
=== "undefined") {
178 for (i
= 0; i
< lines
; i
++) {
185 indent : function (callback
) {
188 if (typeof callback
=== "function") {
189 co
.currentIndent
= co
.currentIndent
+ co
.indentSize
;
191 co
.currentIndent
= co
.currentIndent
- co
.indentSize
;
193 co
.currentIndent
= co
.currentIndent
+ co
.indentSize
;
199 outdent : function (callback
) {
202 if (typeof callback
=== "function") {
203 co
.currentIndent
= co
.currentIndent
- co
.indentSize
;
204 if (co
.currentIndent
< 0) {
205 co
.currentIndent
= 0;
210 co
.currentIndent
= co
.currentIndent
+ co
.indentSize
;
212 co
.currentIndent
= co
.currentIndent
- co
.indentSize
;
213 if (co
.currentIndent
< 0) {
214 co
.currentIndent
= 0;
221 color : function (color
, callback
) {
223 oldColor
= co
.currentColor
;
225 if (typeof callback
=== "function") {
226 co
.currentColor
= color
;
228 co
.currentColor
= oldColor
;
230 co
.currentColor
= color
;
236 // Returns the current time in microseconds.
238 if (typeof performance
!== 'undefined' && performance
.timing
) {
239 return performance
.timing
.navigationStart
+ performance
.now();
242 if (typeof Microtime
!== 'undefined') {
243 return Microtime
.nowDouble() * 1000;
249 _levelString : function (level
) {
280 if (Cobalt
.Console
.__objectSpy
) {
281 Cobalt
.Console
.__objectSpy
.destroy();
284 if (typeof require
=== 'function') {
285 global
.Formatter
= Cobalt
.Formatter
;
286 global
.Logger
= Cobalt
.Logger
;
287 global
.Console
= Cobalt
.Console
;
288 global
.now
= Cobalt
.now
;
289 global
.stringify
= Cobalt
.stringify
;
291 global
.Cobalt
= Cobalt
;
294 }(typeof window
!== 'undefined' ? window : (typeof module
.exports
!== 'undefined' ? module
.exports : self
)));