js/src/common/Logger.js
var Config = require('common/Config');
if (Function.prototype.bind && window.console && typeof console.log == "object") {
[
"log", "info", "warn", "error", "assert", "dir", "clear", "profile", "profileEnd"
].forEach(function (method) {
console[method] = this.bind(console[method], console);
}, Function.prototype.call);
}
Logger.useDefaults();
var _K = Logger.get('_K');
var _KS = Logger.get('_KS'); // status bar only
_K.setLevel(_K.INFO);
_KS.setLevel(_KS.INFO);
if (!Config.inDevMode()) {
_K.setLevel(Logger.OFF);
}
Logger.setHandler(function (messages, context) {
// is Menubar exists and log message is of type INFO
if (KB.Menubar && context.level.value === 2 && context.name === '_KS') {
if (messages[0]) {
KB.Menubar.StatusBar.setMsg(messages[0]);
}
} else {
var console = window.console;
var hdlr = console.log;
// Prepend the logger's name to the log message for easy identification.
if (context.name) {
messages[0] = "[" + context.name + "] " + messages[0];
}
// Delegate through to custom warn/error loggers if present on the console.
if (context.level === Logger.WARN && console.warn) {
hdlr = console.warn;
} else if (context.level === Logger.ERROR && console.error) {
hdlr = console.error;
} else if (context.level === Logger.INFO && console.info) {
hdlr = console.info;
}
hdlr.apply(console, messages);
}
});
module.exports = {
Debug: _K,
User: _KS
};