@tableau/taco-toolkit
Version:
Tableau Connector Toolkit
53 lines • 4.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
var log_level_1 = require("./log-level");
var default_serializer_1 = require("./serializer/default-serializer");
var Logger = /** @class */ (function () {
function Logger(config) {
var _this = this;
var _a, _b;
this.writers = [];
this.batchableWriters = [];
this.level = (_a = config.level) !== null && _a !== void 0 ? _a : log_level_1.LogLevel.INFO;
this.serializer = (_b = config.serializer) !== null && _b !== void 0 ? _b : default_serializer_1.serialize;
config.writers.forEach(function (writer) {
_this.addWriter(writer);
});
}
Logger.prototype.addWriter = function (writer) {
writer.setLoggerLevel(this.level);
if (isBatchableWriter(writer)) {
this.batchableWriters.push(writer);
}
this.writers.push(writer);
};
Logger.prototype.flush = function () {
// force to flush batchable writers
this.batchableWriters.forEach(function (writer) { return writer.flush(); });
};
Logger.prototype.debug = function (message, options) {
this.log(message, log_level_1.LogLevel.DEBUG, options);
};
Logger.prototype.info = function (message, options) {
this.log(message, log_level_1.LogLevel.INFO, options);
};
Logger.prototype.error = function (message, options) {
this.log(message, log_level_1.LogLevel.ERROR, options);
};
Logger.prototype.warn = function (message, options) {
this.log(message, log_level_1.LogLevel.WARNING, options);
};
Logger.prototype.log = function (message, level, options) {
var msgString = this.serializer(message);
this.writers.forEach(function (writer) {
writer.log(msgString, level, options);
});
};
return Logger;
}());
exports.Logger = Logger;
function isBatchableWriter(writer) {
return 'flush' in writer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9sb2dnZXIvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUFzQztBQUV0QyxzRUFBZ0Y7QUFVaEY7SUFNRSxnQkFBWSxNQUFvQjtRQUFoQyxpQkFPQzs7UUFaTyxZQUFPLEdBQWEsRUFBRSxDQUFBO1FBQ3RCLHFCQUFnQixHQUFzQixFQUFFLENBQUE7UUFLOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFBLE1BQU0sQ0FBQyxLQUFLLG1DQUFJLG9CQUFRLENBQUMsSUFBSSxDQUFBO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxNQUFNLENBQUMsVUFBVSxtQ0FBSSw4QkFBaUIsQ0FBQTtRQUV4RCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFDLE1BQU07WUFDNUIsS0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCwwQkFBUyxHQUFULFVBQVUsTUFBYztRQUN0QixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNqQyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7U0FDbkM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMzQixDQUFDO0lBRUQsc0JBQUssR0FBTDtRQUNFLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFVBQUMsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFkLENBQWMsQ0FBQyxDQUFBO0lBQzNELENBQUM7SUFFRCxzQkFBSyxHQUFMLFVBQU0sT0FBZ0IsRUFBRSxPQUFvQjtRQUMxQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxvQkFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUQscUJBQUksR0FBSixVQUFLLE9BQWdCLEVBQUUsT0FBb0I7UUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsb0JBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVELHNCQUFLLEdBQUwsVUFBTSxPQUFnQixFQUFFLE9BQW9CO1FBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLG9CQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFFRCxxQkFBSSxHQUFKLFVBQUssT0FBZ0IsRUFBRSxPQUFvQjtRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxvQkFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRU8sb0JBQUcsR0FBWCxVQUFZLE9BQWdCLEVBQUUsS0FBZSxFQUFFLE9BQW9CO1FBQ2pFLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBQyxNQUFNO1lBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUN2QyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDSCxhQUFDO0FBQUQsQ0FBQyxBQW5ERCxJQW1EQztBQW5EWSx3QkFBTTtBQXFEbkIsU0FBUyxpQkFBaUIsQ0FBQyxNQUFjO0lBQ3ZDLE9BQU8sT0FBTyxJQUFJLE1BQU0sQ0FBQTtBQUMxQixDQUFDIn0=