UNPKG

@clipwhisperer/common

Version:

ClipWhisperer Common - Shared library providing core utilities, database schemas, authentication, bucket management, and common functionality across all ClipWhisperer microservices

52 lines (45 loc) 994 B
/* eslint-disable consistent-return */ import { NextFunction, Request, Response } from "express"; import pino from "pino"; import * as pretty from "pino-pretty"; const levels = { http: 10, debug: 20, info: 30, warn: 40, error: 50, fatal: 60, }; const stream = pretty.default({ colorize: true, translateTime: "SYS:yyyy-mm-dd HH:MM:ss.l", levelFirst: true, }); export const logger = pino( { customLevels: levels, useOnlyCustomLevels: true, level: "http", }, stream ); export const loggerMiddleware = ( req: Request, res: Response, next: NextFunction ): void => { const msg = { url: req.url, method: req.method, body: req.body as unknown, params: req.params, query: req.query, }; const IS_PROD_MODE = process.env.NODE_ENV === "production"; if (!IS_PROD_MODE) { logger.info(JSON.stringify(msg)); } else { logger.info(msg, "request completed"); } next(); };