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
JavaScript
;
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;