%PDF- %PDF-
| Direktori : /home2/vacivi36/intranet.vacivitta.com.br/static/js/humhub/ |
| Current File : //home2/vacivi36/intranet.vacivitta.com.br/static/js/humhub/humhub.log.js |
/**
*
* @param {type} param1
* @param {type} param2
*/
humhub.module('log', function (module, require, $) {
var event = require('event');
var TRACE_TRACE = 0;
var TRACE_DEBUG = 1;
var TRACE_INFO = 2;
var TRACE_SUCCESS = 3;
var TRACE_WARN = 4;
var TRACE_ERROR = 5;
var TRACE_FATAL = 6;
var TRACE_OFF = 7;
var traceLevels = ['TRACE', 'DEBUG', 'INFO', 'SUCCESS', 'WARN', 'ERROR', 'FATAL', 'OFF'];
var config = require('config').module(module);
var object = require('util').object;
var logger = {};
var Logger = function (module) {
if(object.isString(module)) {
this.module = require('module');
this.moduleId = module;
} else if(module){
this.module = module;
this.moduleId = module.id;
}
this.update();
};
Logger.prototype.update = function () {
var result;
if (this.moduleId) {
var moduleConfig = require('config').module(this.moduleId);
if (moduleConfig.traceLevel && traceLevels.indexOf(moduleConfig.traceLevel.toUpperCase()) >= 0) {
result = traceLevels.indexOf(moduleConfig.traceLevel.toUpperCase());
}
}
if (!result) {
result = config.traceLevel || TRACE_INFO;
result = traceLevels.indexOf(result);
}
return this.traceLevel = result;
};
Logger.prototype.trace = function (msg,details, setStatus) {
this._log(msg, details, setStatus, TRACE_TRACE);
};
Logger.prototype.debug = function (msg, details, setStatus) {
this._log(msg, details, setStatus, TRACE_DEBUG);
};
Logger.prototype.info = function (msg, details, setStatus) {
this._log(msg, details, setStatus, TRACE_INFO);
};
Logger.prototype.success = function (msg, setStatus) {
setStatus = object.isDefined(setStatus) ? setStatus : true;
this._log(msg, undefined, setStatus, TRACE_SUCCESS);
};
Logger.prototype.warn = function (msg, error, setStatus) {
this._log(msg, error, setStatus, TRACE_WARN);
};
Logger.prototype.error = function (msg, error, setStatus) {
msg = msg || 'error.default';
this._log(msg, error, setStatus, TRACE_ERROR);
};
Logger.prototype.fatal = function (msg, error, setStatus) {
this._log(msg, error, setStatus, TRACE_FATAL);
};
Logger.prototype._log = function (msg, details, setStatus, level) {
try {
if (this.traceLevel > level) {
return;
}
msg = msg || '';
if (object.isBoolean(details)) {
setStatus = details;
details = undefined;
}
if(msg instanceof Error && level >= TRACE_WARN) {
details = msg;
msg = this.getMessage(details.message, level, true);
} else if(msg.error && msg.error.message) { // client.Response
details = msg;
msg = msg.error.message;
} else if(msg.status && level >= TRACE_WARN) { // client.Response.status
details = msg;
msg = this.getMessage(msg.status, level, true);
} else if(object.isString(msg) || object.isNumber(msg)) {
msg = this.getMessage(msg, level, (!object.isDefined(msg) && level >= TRACE_WARN));
} else if(level >= TRACE_WARN){
msg = this.getMessage(null, level, true);
}
this._consoleLog(msg, level, details);
if (setStatus) {
event.trigger('humhub:modules:log:setStatus', [msg, details, level]);
}
} catch(e) {
console.error('Error while generating log', e);
}
};
Logger.prototype.getMessage = function (key, level, returnDefault) {
var result;
if(this.module) {
result = this.module.text(key);
}
if(!result) {
result = module.text(key);
}
if(!result && returnDefault) {
result = module.text(traceLevels[level].toLowerCase()+'.default');
} else if(!result){
result = key;
}
return result;
};
Logger.prototype._consoleLog = function (msg, level, details) {
if (window.console) {
var consoleMsg = traceLevels[level] + ' - ';
consoleMsg += this.moduleId || 'root';
consoleMsg += ': '+msg;
switch (level) {
case TRACE_ERROR:
case TRACE_FATAL:
console.error(consoleMsg, details);
break;
case TRACE_WARN:
if (details) {
console.warn(consoleMsg, details);
} else {
console.warn(consoleMsg);
}
break;
default:
if (details) {
console.log(consoleMsg, details);
} else {
console.log(consoleMsg);
}
break;
}
}
};
var init = function () {
module.rootLogger = new Logger();
};
var getRootLogger = function () {
if (!module.rootLogger) {
module.rootLogger = new Logger();
}
return module.rootLogger;
};
var getModuleLogger = function (module) {
var moduleId = (object.isString(module)) ? module : module.id;
if (!logger[moduleId]) {
logger[moduleId] = new Logger(module);
}
return logger[moduleId];
};
var trace = function (msg, details, setStatus) {
module.getRootLogger().trace(msg, details, setStatus);
};
var debug = function (msg, details, setStatus) {
module.getRootLogger().debug(msg, details, setStatus);
};
var success = function (msg, details, setStatus) {
module.getRootLogger().success(msg, details, setStatus);
};
var info = function (msg, details, setStatus) {
module.getRootLogger().info(msg, details, setStatus);
};
var warn = function (msg, error, setStatus) {
module.getRootLogger().warn(msg, error, setStatus);
};
var error = function (msg, error, setStatus) {
module.getRootLogger().error(msg, error, setStatus);
};
var fatal = function (msg, error, setStatus) {
module.getRootLogger().fatal(msg, error, setStatus);
};
module.export({
init: init,
sortOrder: 100,
Logger: Logger,
module: getModuleLogger,
getRootLogger: getRootLogger,
trace: trace,
debug: debug,
info: info,
success: success,
warn: warn,
error: error,
fata: fatal,
TRACE_TRACE: TRACE_TRACE,
TRACE_DEBUG: TRACE_DEBUG,
TRACE_INFO: TRACE_INFO,
TRACE_SUCCESS: TRACE_SUCCESS,
TRACE_WARN: TRACE_WARN,
TRACE_ERROR: TRACE_ERROR,
TRACE_OFF: TRACE_OFF
});
});