UNPKG

@nodeboot/starter-persistence

Version:

Nodeboot starter package for persistence. Supports data access layer auto-configuration providing features like database initialization, consistency check, entity mapping, repository pattern, transactions, paging, migrations, persistence listeners, persis

78 lines 2.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PersistenceLogger = void 0; const typeorm_1 = require("typeorm"); /** * Logger implementation for TypeORM that delegates log messages * to a Winston logger, formatted according to persistence configuration. * * Extends TypeORM's {@link AbstractLogger}. * * @author Manuel Santos <https://github.com/manusant> */ class PersistenceLogger extends typeorm_1.AbstractLogger { logger; configs; /** * Creates a new PersistenceLogger instance. * * @param {Logger} logger - The Winston logger instance to delegate logging to. * @param {PersistenceProperties} configs - Configuration properties for persistence and logging format. */ constructor(logger, configs) { super(); this.logger = logger; this.configs = configs; } /** * Writes log messages to the configured logger. * * Processes a single or multiple log messages, formats them according to * configured log format, then sends them to the appropriate Winston logging method * depending on the log level or message type. * * @param {LogLevel} level - The TypeORM log level of the message(s). * @param {LogMessage | LogMessage[]} logMessage - One or more log messages to be written. */ writeLog(level, logMessage) { const messages = this.prepareLogMessages(logMessage, this.configs.logFormat); for (const message of messages) { switch (message.type ?? level) { case "log": case "schema-build": case "migration": this.logger.debug(message.message); break; case "info": case "query": if (message.prefix) { this.logger.info(message.prefix, message.message); } else { this.logger.info(message.message); } break; case "warn": case "query-slow": if (message.prefix) { this.logger.warn(message.prefix, message.message); } else { this.logger.warn(message.message); } break; case "error": case "query-error": if (message.prefix) { this.logger.error(message.prefix, message.message); } else { this.logger.error(message.message); } break; } } } } exports.PersistenceLogger = PersistenceLogger; //# sourceMappingURL=PersistenceLogger.js.map