UNPKG

@hoangnam.io/qa-tools

Version:

Logging, Error handling, Notifying for Express codebase

22 lines (19 loc) 873 B
const morgan = require("morgan"); const { genLogFormatFunc } = require("./log-format"); const { getLogger } = require("./logger"); const { createLogMiddlewareSchema } = require("./schema"); function createLogMiddleware(app, options) { const { appName, extractCallerFunc, sensitiveRoutes, TZ, ignoreRoutes, loggerOptions } = createLogMiddlewareSchema.parse(options); const logFormatFunction = genLogFormatFunc({ app, appName, extractCallerFunc, sensitiveRoutes, TZ }); const logger = getLogger(loggerOptions); const logStream = { write: (logString) => logger.log(JSON.parse(logString)) }; return morgan(logFormatFunction, { stream: logStream, skip: (req) => ignoreRoutes.some( ({ method, route }) => req.method.toLowerCase() === method.toLowerCase() && req.url.includes(route) ), }); } module.exports = { createLogMiddleware };