UNPKG

@betit/orion-node-sdk

Version:
81 lines 2.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const graylog = require("graygelf"); const message_1 = require("./message"); const Colors = require("./colors"); const LoggerLevels = require("./levels"); const levels_1 = require("./levels"); const KiB = 1024; const MAXIMUM_PARAMS_SIZE = 30 * KiB; // Let the 2KiB to 32KiB free for other fields. class Logger { constructor(_serviceName, _verbose) { this._serviceName = _serviceName; this._verbose = _verbose; this._logLevel = LoggerLevels.levelToNumber(process.env.ORION_LOGGER_LEVEL || ''); this._client = new graylog({ host: process.env.ORION_LOGGER_HOST || '127.0.0.1', port: process.env.ORION_LOGGER_PORT || 12201, }); } createMessage(message) { return new message_1.Message(this, this._serviceName, message); } send(m) { if (this._logLevel < m.level) { return; } if (this._verbose) { this._consoleLog(m); } try { const params = JSON.stringify(m.params) || ''; if (params.length > MAXIMUM_PARAMS_SIZE) { m.params = params.substr(0, 4 * KiB) + '...'; this._client.info(new Error(`HUGE PARAMETER SIZE (${params.length})`)); } else { m.params = params; } this._client.raw(m); } catch (e) { this._client.info(e); this._client.raw(Object.assign({}, m, { level: levels_1.ERROR, params: undefined, })); } } _consoleLog(m) { const COLOR = Colors.getColorForLevel(m.level); const LEVEL = LoggerLevels.levelToString(m.level); const TIME = this._getTime(); const SERVICE = this._serviceName; console.log('\x1b[' + COLOR + 'm' + TIME + ' | ' + SERVICE + ' ▶', '\x1b[0m', LEVEL, JSON.stringify(m)); } _getTime() { const TODAY = new Date(); let hours = TODAY.getHours(); if (hours < 10) { hours = '0' + hours; } let minutes = TODAY.getMinutes(); if (minutes < 10) { minutes = '0' + minutes; } let seconds = TODAY.getSeconds(); if (seconds < 10) { seconds = '0' + seconds; } let milliseconds = TODAY.getMilliseconds(); if (milliseconds < 10) { milliseconds = '0' + milliseconds; } if (milliseconds < 99) { milliseconds = '0' + milliseconds; } return hours + ':' + minutes + ':' + seconds + ':' + milliseconds; } } exports.Logger = Logger; //# sourceMappingURL=logger.js.map