48 lines
1.0 KiB
JavaScript
48 lines
1.0 KiB
JavaScript
'use strict';
|
|
|
|
var toJSON = require('../util/to_json');
|
|
|
|
var Logging = {
|
|
LOG_LEVELS: {
|
|
fatal: 4,
|
|
error: 3,
|
|
warn: 2,
|
|
info: 1,
|
|
debug: 0
|
|
},
|
|
|
|
writeLog: function(messageArgs, level) {
|
|
var logger = Logging.logger || (Logging.wrapper || Logging).logger;
|
|
if (!logger) return;
|
|
|
|
var args = Array.prototype.slice.apply(messageArgs),
|
|
banner = '[Faye',
|
|
klass = this.className,
|
|
|
|
message = args.shift().replace(/\?/g, function() {
|
|
try {
|
|
return toJSON(args.shift());
|
|
} catch (error) {
|
|
return '[Object]';
|
|
}
|
|
});
|
|
|
|
if (klass) banner += '.' + klass;
|
|
banner += '] ';
|
|
|
|
if (typeof logger[level] === 'function')
|
|
logger[level](banner + message);
|
|
else if (typeof logger === 'function')
|
|
logger(banner + message);
|
|
}
|
|
};
|
|
|
|
for (var key in Logging.LOG_LEVELS)
|
|
(function(level) {
|
|
Logging[level] = function() {
|
|
this.writeLog(arguments, level);
|
|
};
|
|
})(key);
|
|
|
|
module.exports = Logging;
|