@glue42/bbg-market-data
Version:
A high-level API that wraps existing Glue42 Bloomberg Bridge Market Data interop methods. The API is based on the jBloomberg open source wrapper.
66 lines (65 loc) • 2.41 kB
JavaScript
var ConsoleLogger = (function () {
function ConsoleLogger(name, options) {
this.name = name;
this.options = options;
}
ConsoleLogger.prototype.trace = function (message) {
this.logFn(message, "trace");
};
ConsoleLogger.prototype.debug = function (message) {
this.logFn(message, "debug");
};
ConsoleLogger.prototype.info = function (message) {
this.logFn(message, "info");
};
ConsoleLogger.prototype.log = function (message) {
this.logFn(message, "log");
};
ConsoleLogger.prototype.warn = function (message) {
this.logFn(message, "warn");
};
ConsoleLogger.prototype.error = function (message) {
if (message instanceof Error) {
message = message.message + "\n" + message.stack;
}
this.logFn(message, "error");
};
ConsoleLogger.prototype.logFn = function (message, level) {
var logLevelsInOrder = ["trace", "debug", "log", "info", "warn", "error"];
var logLevel = logLevelsInOrder.includes(this.options.logLevel) ? this.options.logLevel : "info";
var levelIdx = logLevelsInOrder.indexOf(level);
var restrictionIdx = logLevelsInOrder.indexOf(logLevel);
var canLog = levelIdx >= restrictionIdx;
if (!canLog) {
return;
}
var date = new Date();
var time = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds() + ":" + date.getMilliseconds();
var loggerName = this.name ? "[" + String(this.name) + "] " : "";
var prefix = "[" + time + "] [" + level + "] " + loggerName;
switch (level) {
case "log":
console.log(prefix, message);
break;
case "info":
console.info(prefix, message);
break;
case "debug":
console.debug(prefix, message);
break;
case "trace":
console.log(prefix, message);
break;
case "warn":
console.warn(prefix, message);
break;
case "error":
console.error(prefix, message);
break;
default:
break;
}
};
return ConsoleLogger;
}());
export default ConsoleLogger;