UNPKG

@elsikora/nestjs-crud-automator

Version:

A library for automating the creation of CRUD operations in NestJS.

69 lines (66 loc) 2.27 kB
'use strict'; var tslib_es6 = require('../external/tslib/tslib.es6.js'); var common = require('@nestjs/common'); var dotenv = require('dotenv'); var LoggerUtility_1; dotenv.config(); /** * Custom logger that extends NestJS's ConsoleLogger with environment-based log level filtering */ exports.LoggerUtility = class LoggerUtility extends common.ConsoleLogger { static { LoggerUtility_1 = this; } static ENV_LOG_LEVEL_KEY = "NCD_LOG_LEVEL"; constructor(context) { super(context ?? "DefaultContext", { logLevels: LoggerUtility_1.getLogLevelsFromEnv(), }); } /** * Static method to create a logger with a specific context * @param {string} context - The context name for the logger * @returns {LoggerUtility} A new logger instance with the specified context */ static getLogger(context) { return new LoggerUtility_1(`NestJS-Crud-Automator/${context ?? "Core"}`); } /** * Get the current log level from environment variable * @returns {Array<LogLevel>} Array of enabled log levels based on environment configuration * @private */ static getLogLevelsFromEnv() { const logLevel = process.env[this.ENV_LOG_LEVEL_KEY] ?? "none"; if (!logLevel) { // Default log levels if not specified in env return ["error", "warn", "log"]; } switch (logLevel.toLowerCase()) { case "debug": { return ["error", "warn", "log", "debug"]; } case "error": { return ["error"]; } case "log": { return ["error", "warn", "log"]; } case "none": { return []; } case "verbose": { return ["error", "warn", "log", "debug", "verbose"]; } case "warn": { return ["error", "warn"]; } default: { return ["error", "warn", "log"]; } } } }; exports.LoggerUtility = LoggerUtility_1 = tslib_es6.__decorate([ common.Injectable(), tslib_es6.__metadata("design:paramtypes", [String]) ], exports.LoggerUtility); //# sourceMappingURL=logger.utility.js.map