UNPKG

llamajs

Version:

A dynamic logger for the dynamic developer

50 lines 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const loggerConfigs_1 = require("./loggerConfigs"); class Logger { constructor(config) { this.configure(config || loggerConfigs_1.defaultLoggerConfig); } init() { return this.initTransports(); } initTransports() { const transportInitPromises = this.config.transports.map(transport => transport.init()); return Promise.all(transportInitPromises); } configure(config) { if (this.isConfigValid(config)) { this.config = config; } else { throw new Error(`[Invalid Logger Config]: Transport includes levels that the logger does not have`); } } isConfigValid(config) { for (let transIndex = 0; transIndex < config.transports.length; transIndex++) { const transportSeverityLevels = config.transports[transIndex].config.levels; const loggerSeverityLevels = config.levels; if (!transportSeverityLevels.every(severityLevel => Object.values(loggerSeverityLevels).includes(severityLevel))) { return false; } } return true; } sendToTransports(message, messageConfig) { this.config.transports.forEach((transport) => { transport.send(message, messageConfig); }); } log(logMessage, messageConfig) { this.sendToTransports(logMessage, messageConfig); } removeTransports() { this.config.transports.forEach((transport) => { transport.close(); }); this.config.transports = []; } } exports.Logger = Logger; //# sourceMappingURL=logger.js.map