UNPKG

@vaibhavkaul69/monitoring-logger

Version:

Reusable monitoring and logging middleware for backend servicses

44 lines (38 loc) 1.08 kB
const { createLogger, format } = require("winston"); const LokiTransport = require("winston-loki"); require("dotenv").config(); const logger = createLogger({ format: format.combine(format.timestamp(), format.json()), transports: [ new LokiTransport({ host: process.env.LOKI_URL || "http://localhost:3100", labels: { app: "backend-service" }, onConnectionError: (err) => { console.error( "[monitoring-logger-error] Loki connection failed:", err.message ); }, }), ], }); const log = (level, messagePayload, labels) => { if (!labels) { console.error("[monitoring-logger-error] labels cannot be empty"); return; } logger.log({ level: level, message: JSON.stringify(messagePayload), labels: labels, }); }; const logDebug = (payload, labels) => log("debug", payload, labels); const logInfo = (payload, labels) => log("info", payload, labels); const logError = (payload, labels) => log("error", payload, labels); module.exports = { logger, logInfo, logError, logDebug, };