UNPKG

@mbc-cqrs-serverless/core

Version:
92 lines 2.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RequestLogger = void 0; exports.getLogLevels = getLogLevels; /* eslint-disable no-console */ const common_1 = require("@nestjs/common"); const context_1 = require("../context"); const user_1 = require("../context/user"); const env_validation_1 = require("../env.validation"); const helpers_1 = require("../helpers"); class RequestLogger extends common_1.ConsoleLogger { constructor() { super(...arguments); this.isLocal = process.env.NODE_ENV === env_validation_1.Environment.Local || !helpers_1.IS_LAMBDA_RUNNING; } printStackTrace(stack) { if (this.isLocal) { return super.printStackTrace(stack); } // lambda function if (!stack) { return; } console.error(stack); } printMessages(messages, context, logLevel, writeStreamType) { if (context === 'InstanceLoader' || context == 'RoutesResolver' || context == 'RouterExplorer') { return; } if (this.isLocal) { return super.printMessages(messages, context, logLevel, writeStreamType); } // lambda function const contextMessage = this.getLambdaContextMessage(context); const logFunc = logFuncMaper[logLevel]; for (const message of messages) { if (!message) { continue; } logFunc({ ...contextMessage, message }); } } getLambdaContextMessage(contextMessage) { const ctx = (0, context_1.extractInvokeContext)(); const userContext = (0, user_1.getUserContext)(ctx); const requestId = ctx?.context?.awsRequestId || undefined; const ip = ctx?.event?.requestContext?.http?.sourceIp || undefined; const tenantCode = userContext.tenantCode || undefined; const userId = userContext.userId || undefined; return { context: contextMessage, requestId, ip, tenantCode, userId, }; } } exports.RequestLogger = RequestLogger; const logFuncMaper = { verbose: console.trace, debug: console.debug, log: console.info, warn: console.warn, error: console.error, fatal: console.error, }; function getLogLevels(level) { const levels = [ 'verbose', 'debug', 'log', 'warn', 'error', 'fatal', ]; const start = level === 'debug' ? 1 : level === 'info' ? 2 : level === 'warn' ? 3 : level === 'error' ? 4 : level === 'fatal' ? 5 : 0; return levels.slice(start); } //# sourceMappingURL=request-logger.service.js.map