UNPKG

kafka-ts

Version:

**KafkaTS** is a Apache Kafka client library for Node.js. It provides both a low-level API for communicating directly with the Apache Kafka cluster and high-level APIs for publishing and subscribing to Kafka topics.

54 lines (53 loc) 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setLogLevel = exports.setLogger = exports.log = exports.jsonSerializer = exports.LogLevel = void 0; var LogLevel; (function (LogLevel) { LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG"; LogLevel[LogLevel["INFO"] = 1] = "INFO"; LogLevel[LogLevel["WARNING"] = 2] = "WARNING"; LogLevel[LogLevel["ERROR"] = 3] = "ERROR"; })(LogLevel || (exports.LogLevel = LogLevel = {})); const jsonSerializer = (_, v) => { if (v instanceof Error) { return Object.getOwnPropertyNames(v).reduce((acc, key) => { acc[key] = v[key]; return acc; }, {}); } if (Buffer.isBuffer(v)) { return v.toString(); } if (typeof v === 'bigint') { return v.toString(); } return v; }; exports.jsonSerializer = jsonSerializer; class JsonLogger { debug(message, metadata) { logLevel <= LogLevel.DEBUG && console.debug(JSON.stringify({ message, metadata, level: 'debug' }, exports.jsonSerializer)); } info(message, metadata) { logLevel <= LogLevel.INFO && console.info(JSON.stringify({ message, metadata, level: 'info' }, exports.jsonSerializer)); } warn(message, metadata) { logLevel <= LogLevel.WARNING && console.warn(JSON.stringify({ message, metadata, level: 'warning' }, exports.jsonSerializer)); } error(message, metadata) { logLevel <= LogLevel.ERROR && console.error(JSON.stringify({ message, metadata, level: 'error' }, exports.jsonSerializer)); } } exports.log = new JsonLogger(); const setLogger = (newLogger) => { exports.log = newLogger; }; exports.setLogger = setLogger; let logLevel = LogLevel.INFO; const setLogLevel = (newLogLevel) => { logLevel = newLogLevel; }; exports.setLogLevel = setLogLevel;