From 4781079efdb102025fabe63a74e1264087857b4a Mon Sep 17 00:00:00 2001 From: aritro66 Date: Thu, 14 Dec 2023 12:25:02 +0530 Subject: [PATCH] editted logger and containeried the app --- .dockerignore | 1 + Dockerfile | 9 +++++ docker-compose.yaml | 39 ++++++++++++++++++++++ src/common-lib/middleware/logger.ts | 51 ++++++++++++++--------------- 4 files changed, 74 insertions(+), 26 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yaml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..30bc162 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +/node_modules \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0344eb5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM node:alpine + +WORKDIR /usr/src/app +COPY package*.json ./ +RUN npm install +COPY . . +RUN npm run build +EXPOSE 3000 +CMD ["npm","start"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..ecc369a --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,39 @@ +version: "3.8" + +services: + mainapp: + build: ./ + container_name: mainapp + ports: + - "3000:3000" + networks: + - nodeapp-network + environment: + REDISURL: redis + depends_on: + - postgres + - redis + + postgres: + image: postgres:alpine + container_name: postgres + ports: + - "5432:5432" + environment: + POSTGRES_DB: data + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + networks: + - nodeapp-network + + redis: + image: redis:alpine + container_name: redis + ports: + - "6379:6379" + networks: + - nodeapp-network + +networks: + nodeapp-network: + driver: bridge diff --git a/src/common-lib/middleware/logger.ts b/src/common-lib/middleware/logger.ts index 6932cf3..790e301 100644 --- a/src/common-lib/middleware/logger.ts +++ b/src/common-lib/middleware/logger.ts @@ -33,13 +33,35 @@ loggerProvider.addLogRecordProcessor(logProcessor) const { combine, label, printf } = format -const myFormat = printf(info => `${info.timestamp} [${info.level}]: ${info.label} - ${info.message}`) + +const myFormat = printf(info => { + + const formatedMessage: string = `${info.timestamp} [${info.level}]: ${info.label} - ${info.message}` + + if (info.level === 'info') { + loggerProvider + .getLogger('otel-logger') + .emit({ body: formatedMessage, severityNumber: SeverityNumber.INFO }) + } + else if (info.level === 'error') { + loggerProvider + .getLogger('otel-logger') + .emit({ body: formatedMessage, severityNumber: SeverityNumber.ERROR }) + } + else { + loggerProvider + .getLogger('otel-logger') + .emit({ body: formatedMessage, severityNumber: SeverityNumber.WARN }) + } + + return formatedMessage; +}) + const appendTimestamp = format((info, opts) => { if (opts.tz) info.timestamp = moment().tz(opts.tz).format() return info }) -const formatLog = (args: any) => - typeof args === 'string' ? args : JSON.stringify(args) + const customLogger = module => { const logger = createLogger({ //TODO: Need to read the level from config @@ -56,32 +78,9 @@ const customLogger = module => { }, } - - return logger } -customLogger.info = (args: any) => { - loggerProvider - .getLogger('otel-logger') - .emit({ body: formatLog(args), severityNumber: SeverityNumber.INFO }) - return customLogger.info(args) -} - -customLogger.warning = (args: any) => { - loggerProvider - .getLogger('otel-logger') - .emit({ body: formatLog(args), severityNumber: SeverityNumber.WARN }) - return customLogger.warning(args) -} - -customLogger.error = (args: any) => { - loggerProvider - .getLogger('otel-logger') - .emit({ body: formatLog(args), severityNumber: SeverityNumber.ERROR }) - return customLogger.error(args) -} - // create a stream object with a 'write' function that will be used by `morgan` // module.exports = customLogger