UNPKG

@russ-b/nestjs-common-tools

Version:
52 lines 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = void 0; const logger_builder_1 = require("./logger-builder"); class Logger { /** * Creates a fluent logger builder * @param appName - Application name (default: 'NestApp') * @param level - Log level (default: 'debug') * @returns LoggerBuilder instance * @example * ```ts * const logger = Logger.builder('MyApp', 'info') * .addTransport('json') * .addTransport('loki', { lokiUrl: 'http://...' }) * .build(); * ``` */ static builder(appName, level) { return new logger_builder_1.LoggerBuilder(appName, level); } static normalizeFormats(formats) { if (!formats) { return ['nest']; } return Array.isArray(formats) ? formats : [formats]; } static create(appName, level, formats, options) { const builder = Logger.builder(appName, level); const types = this.normalizeFormats(formats); types.forEach((type) => this.addTransportToBuilder(builder, type, options)); return builder.build(); } static addTransportToBuilder(builder, type, options) { switch (type) { case 'loki': if (!options?.loki) { throw new Error('Loki transport requires options.loki to be provided'); } builder.addTransport(type, options.loki); break; case 'json': builder.addTransport(type, options?.json); break; case 'nest': builder.addTransport(type, options?.nest); break; } } } exports.Logger = Logger; //# sourceMappingURL=logger.js.map