UNPKG

@mindpath/logger

Version:

Custom logging module to print logs on console, file or sent it to logs visualization application such as grafana

53 lines 2.2 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; const formats_1 = require("./formats"); const loki_1 = __importDefault(require("./transports/loki")); const winston_1 = __importStar(require("winston")); const constant_1 = require("./constant"); const utils_1 = require("./utils"); let customFormatter; const { splat, combine, timestamp, colorize, json } = winston_1.format; const transports = []; const consoleProvider = utils_1.getProvider(constant_1.PROVIDER.CONSOLE); if (consoleProvider) { transports.push(new winston_1.default.transports.Console()); customFormatter = combine(colorize(), timestamp(), splat(), formats_1.consoleFormat); } const grafanaProvider = utils_1.getProvider(constant_1.PROVIDER.GRAFANA); if (grafanaProvider) { if (grafanaProvider.url) { const customTransport = new loki_1.default(grafanaProvider.url); transports.push(customTransport.transport); customFormatter = combine(formats_1.providerFormat(), json()); } else { console.log('Url is required for grafana provider'); } } module.exports = winston_1.default.createLogger({ level: process.env.LOG_LEVEL || "info", transports, format: customFormatter, }); //# sourceMappingURL=index.js.map