@vaibhavkaul69/monitoring-logger
Version:
Reusable monitoring and logging middleware for backend servicses
44 lines (38 loc) • 1.08 kB
JavaScript
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,
};