UNPKG

@voicenter-team/mysql-dynamic-cluster

Version:

Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics

79 lines 3.5 kB
"use strict"; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const winston_1 = __importDefault(require("winston")); const WinstonAMQPPoolTransport_1 = __importDefault(require("@voicenter-team/failover-amqp-pool/WinstonAMQPPoolTransport")); const LoggerInterfaces_1 = require("../types/LoggerInterfaces"); const configs_1 = __importDefault(require("../configs")); const consoleFormat = winston_1.default.format.printf((_a) => { var { level, timestamp, requestID, message } = _a, extra = __rest(_a, ["level", "timestamp", "requestID", "message"]); return `[${timestamp}]${requestID ? '[req:' + requestID + ']' : ''} [${level}] ${message} ${Object.keys(extra).length ? JSON.stringify(extra) : ''}`; }); class Logger { init() { const logLevel = configs_1.default.get('logs.level'); const output = configs_1.default.get('logs.output') .split(',') .map((out) => out.trim()); this.logger = winston_1.default.createLogger({ level: logLevel, format: winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' })), silent: logLevel === LoggerInterfaces_1.LOGLEVEL.SILENT }); if (output.includes('console')) { this.logger.add(new winston_1.default.transports.Console({ format: consoleFormat, })); } if (output.includes('amqp')) { const amqpConfig = { topic: configs_1.default.get('amqp_logs.topic'), pool: [] }; amqpConfig.pool.push({ connection: configs_1.default.get('amqp_logs.connection_master'), channel: { exchange: configs_1.default.get('amqp_logs.exchage'), queue: configs_1.default.get('amqp_logs.queue'), binding: configs_1.default.get('amqp_logs.bindings'), prefetch: configs_1.default.get('amqp_logs.prefetch') } }); this.logger.add(new WinstonAMQPPoolTransport_1.default(amqpConfig)); } } log(type, message, meta = {}) { this.logger.log(type, message, meta); } // Convenience methods below debug(message, meta = {}) { this.log(LoggerInterfaces_1.LOGTYPES.DEBUG, message, meta); } info(message, meta = {}) { this.log(LoggerInterfaces_1.LOGTYPES.INFO, message, meta); } error(message, meta = {}) { this.log(LoggerInterfaces_1.LOGTYPES.ERROR, message, meta); } verbose(message, meta = {}) { this.log(LoggerInterfaces_1.LOGTYPES.VERBOSE, message, meta); } warn(message, meta = {}) { this.log(LoggerInterfaces_1.LOGTYPES.WARN, message, meta); } } exports.default = new Logger(); //# sourceMappingURL=Logger.js.map