UNPKG

@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.

67 lines 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class ConsoleLogger { constructor(name, options) { this.name = name; this.options = options; } trace(message) { this.logFn(message, "trace"); } debug(message) { this.logFn(message, "debug"); } info(message) { this.logFn(message, "info"); } log(message) { this.logFn(message, "log"); } warn(message) { this.logFn(message, "warn"); } error(message) { if (message instanceof Error) { message = message.message + "\n" + message.stack; } this.logFn(message, "error"); } logFn(message, level) { const logLevelsInOrder = ["trace", "debug", "log", "info", "warn", "error"]; const logLevel = logLevelsInOrder.includes(this.options.logLevel) ? this.options.logLevel : "info"; const levelIdx = logLevelsInOrder.indexOf(level); const restrictionIdx = logLevelsInOrder.indexOf(logLevel); const canLog = levelIdx >= restrictionIdx; if (!canLog) { return; } const date = new Date(); const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`; const loggerName = this.name ? "[" + String(this.name) + "] " : ""; const 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; } } } exports.default = ConsoleLogger; //# sourceMappingURL=console.js.map