UNPKG

@hoangnam.io/qa-tools

Version:

Logging, Error handling, Notifying for Express codebase

81 lines (69 loc) 2.25 kB
require("dotenv").config(); const express = require("express"); const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: false })); const cors = require("cors"); const { createLogMiddleware } = require("./logging/log-middleware"); const { getLogger } = require("./logging/logger"); const { getNotifier } = require("./notify"); const { getErrorHandlerMiddleware } = require("./error-handling"); app.use(cors()); const appName = "MyAppName"; // notifier const notifier = getNotifier({ discord: { url: "https://discord.com/api/webhooks/1392419926458892388/ZeE6S3qJuEScAUP98-jCCnR153pZaZ_PT7aUtsXgFTW8N63fqMDCauDHDJprLJ5vdK2r", }, }); const logOptions = { consoleConfig: { mode: "prod" }, mongoConfig: { connectionString: process.env.LOG_DB_CONNECTION_STRING }, gcConfig: { projectId: "kicc-384807", keyFilename: "/Users/hoangnam/_code/archive/qa-tools/service-account-key.json", }, }; // logger // must pass logObj: logger.log({status: 200}) // must not pass string: logger.log("hello") const logger = getLogger(logOptions); // logger.log({ // severity: "ERROR", // appName: "QALibApp", // logType: "RequestLog", // zTimestamp: "2025-07-09T16:10:52+07:00", // timestamp: 1752052252166, // caller: { // user: "user", // }, // userAgent: "curl/8.7.1", // ip: "::1", // method: "GET", // url: "/login", // responseContentLength: 144, // contentLengthUnit: "bytes", // responseTime: 1.362, // responseTimeUnit: "ms", // status: 404, // query: {}, // body: "*", // }); logger.log("hello"); // log middleware const createLogMiddlewareOptions = { extractCallerFunc: () => ({ user: "user" }), appName: appName, sensitiveRoutes: ["login", "auth"], ignoreRoutes: [{ method: "GET", route: "health-check" }], loggerOptions: logOptions, // fluentConfig: { host: "0.0.0.0" }, }; app.use(createLogMiddleware(app, createLogMiddlewareOptions)); app.use(require("./auth")); app.use(require("./test")); // error handler const errorHandler = getErrorHandlerMiddleware(notifier, (req) => req.userInfo, appName); app.use(errorHandler); const PORT = process.env.PORT || 8000; app.listen(PORT, () => console.log(`${appName} listening on port ${PORT}!`));