UNPKG

cris-shared

Version:

A collection of reusable utilities and shared code for microservices.

73 lines 2.81 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.winstonLogger = void 0; const winston_1 = __importDefault(require("winston")); const winston_loki_1 = __importDefault(require("winston-loki")); const winstonLogger = (lokiUrl, name, level, nodeEnv) => { const options = { console: { level, handleExceptions: true, format: winston_1.default.format.combine(winston_1.default.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), winston_1.default.format.colorize({ all: true }), winston_1.default.format.printf(({ level, message, label, timestamp }) => { return `${timestamp} [${label || name}] ${level}: ${message}`; })), json: false, }, file: { level: level, handleExceptions: true, format: winston_1.default.format.combine(winston_1.default.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss.SSS" }), winston_1.default.format.printf(({ level, message, label, timestamp }) => { return `${timestamp} [${label || name}] ${level}: ${message}`; })), }, loki: { labels: { app: name, environment: nodeEnv }, level, host: lokiUrl, format: winston_1.default.format.json(), replaceTimestamp: true, onConnectionError: (err) => console.error(err), }, }; let transports = []; if (nodeEnv === "development") { transports = [ new winston_1.default.transports.Console(options.console), new winston_1.default.transports.File({ ...options.file, filename: "logs/error.log", level: "error", }), new winston_1.default.transports.File({ ...options.file, filename: "logs/app.log", }), new winston_loki_1.default(options.loki), ]; } else { transports = [ new winston_1.default.transports.File({ ...options.file, filename: "logs/error.log", level: "error", }), new winston_1.default.transports.File({ ...options.file, filename: "logs/app.log", }), new winston_loki_1.default(options.loki), ]; } const logger = winston_1.default.createLogger({ exitOnError: false, defaultMeta: { service: name }, transports: transports, }); return logger; }; exports.winstonLogger = winstonLogger; //# sourceMappingURL=logger.js.map