@betit/orion-node-sdk
Version:
SDK for orion
81 lines • 2.76 kB
JavaScript
;
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