@mbc-cqrs-serverless/core
Version:
CQRS and event base core
92 lines • 2.88 kB
JavaScript
;
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